1 | // RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s |
2 | // rdar://20281011 |
3 | |
4 | namespace std { |
5 | template<class _Ep> class initializer_list { }; |
6 | } |
7 | |
8 | namespace cva { |
9 | |
10 | template <class VT, unsigned int ROWS = 0, unsigned int COLS = 0> |
11 | class Matrix { |
12 | public: |
13 | |
14 | typedef VT value_type; |
15 | inline __attribute__((always_inline)) value_type& at(); |
16 | }; |
17 | |
18 | template <class VT, unsigned int SIZE> using Vector = Matrix<VT, SIZE, 1>; |
19 | |
20 | template <class VT> |
21 | using RGBValue = Vector<VT, 3>; |
22 | using RGBFValue = RGBValue<float>; |
23 | |
24 | template <class VT> class Matrix<VT, 0, 0> { // expected-note {{passing argument to parameter here}} |
25 | public: |
26 | typedef VT value_type; |
27 | Matrix(const unsigned int nRows, const unsigned int nColumns, const value_type* data = nullptr); |
28 | |
29 | Matrix(const std::initializer_list<value_type>& list) = delete; // expected-note {{'Matrix' has been explicitly marked deleted here}} |
30 | |
31 | }; |
32 | |
33 | void getLaplacianClosedForm() |
34 | { |
35 | Matrix<double> winI(0, 3); |
36 | RGBFValue* inputPreL; |
37 | winI = { inputPreL->at() }; // expected-error {{call to deleted constructor of 'cva::Matrix<double, 0, 0> &&'}} |
38 | } |
39 | |
40 | } |
41 | |