|
1 |
| -.tmp.cpp:73:29: error: template argument ‘(long unsigned int)N’ involves template parameter(s) |
2 |
| - template<int N> struct std::tuple_element<N, constant::Q> { typedef int type; }; |
3 |
| - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
4 |
| -.tmp.cpp:78:39: error: invalid use of incomplete type ‘struct std::tuple_element<0, constant::Q>’ |
5 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(constant::); |
6 |
| - ^~~~ |
7 |
| -.tmp.cpp:5:51: note: declaration of ‘struct std::tuple_element<0, constant::Q>’ |
8 |
| - namespace std { template<size_t, typename> struct tuple_element; |
9 |
| - ^~~~~~~~~~~~~ |
10 |
| -.tmp.cpp:79:39: error: invalid use of incomplete type ‘struct std::tuple_element<1, constant::Q>’ |
11 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(constant::); |
12 |
| - ^~~~ |
13 |
| -.tmp.cpp:5:51: note: declaration of ‘struct std::tuple_element<1, constant::Q>’ |
14 |
| - namespace std { template<size_t, typename> struct tuple_element; |
15 |
| - ^~~~~~~~~~~~~ |
16 |
| -.tmp.cpp:80:39: error: invalid use of incomplete type ‘struct std::tuple_element<2, constant::Q>’ |
17 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(constant::); |
18 |
| - ^~~~ |
19 |
| -.tmp.cpp:5:51: note: declaration of ‘struct std::tuple_element<2, constant::Q>’ |
20 |
| - namespace std { template<size_t, typename> struct tuple_element; |
21 |
| - ^~~~~~~~~~~~~ |
22 |
| -.tmp.cpp: In function ‘constexpr bool constant::f()’: |
23 |
| -.tmp.cpp:85:5: error: incomplete type ‘std::tuple_element<0, constant::Q>’ used in nested name specifier |
24 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(__q20); |
25 |
| - ^~~ |
26 |
| -.tmp.cpp:85:48: error: ‘a’ was not declared in this scope |
27 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(__q20); |
28 |
| - ^ |
29 |
| -.tmp.cpp:85:71: error: no matching function for call to ‘get(constant::Q&)’ |
30 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(__q20); |
31 |
| - ^ |
32 |
| -.tmp.cpp:40:33: note: candidate: template<int N> constexpr int constant::get(constant::Q&&) |
33 |
| - template<int N> constexpr int get(Q &&) { return N * N; } |
34 |
| - ^~~ |
35 |
| -.tmp.cpp:40:33: note: template argument deduction/substitution failed: |
36 |
| -.tmp.cpp:85:71: note: couldn't deduce template parameter ‘N’ |
37 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(__q20); |
38 |
| - ^ |
39 |
| -.tmp.cpp:86:5: error: incomplete type ‘std::tuple_element<1, constant::Q>’ used in nested name specifier |
40 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(__q20); |
41 |
| - ^~~ |
42 |
| -.tmp.cpp:86:48: error: ‘b’ was not declared in this scope |
43 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(__q20); |
44 |
| - ^ |
45 |
| -.tmp.cpp:86:71: error: no matching function for call to ‘get(constant::Q&)’ |
46 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(__q20); |
47 |
| - ^ |
48 |
| -.tmp.cpp:40:33: note: candidate: template<int N> constexpr int constant::get(constant::Q&&) |
49 |
| - template<int N> constexpr int get(Q &&) { return N * N; } |
50 |
| - ^~~ |
51 |
| -.tmp.cpp:40:33: note: template argument deduction/substitution failed: |
52 |
| -.tmp.cpp:86:71: note: couldn't deduce template parameter ‘N’ |
53 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(__q20); |
54 |
| - ^ |
55 |
| -.tmp.cpp:87:5: error: incomplete type ‘std::tuple_element<2, constant::Q>’ used in nested name specifier |
56 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(__q20); |
57 |
| - ^~~ |
58 |
| -.tmp.cpp:87:48: error: ‘c’ was not declared in this scope |
59 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(__q20); |
60 |
| - ^ |
61 |
| -.tmp.cpp:87:71: error: no matching function for call to ‘get(constant::Q&)’ |
62 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(__q20); |
63 |
| - ^ |
64 |
| -.tmp.cpp:40:33: note: candidate: template<int N> constexpr int constant::get(constant::Q&&) |
65 |
| - template<int N> constexpr int get(Q &&) { return N * N; } |
66 |
| - ^~~ |
67 |
| -.tmp.cpp:40:33: note: template argument deduction/substitution failed: |
68 |
| -.tmp.cpp:87:71: note: couldn't deduce template parameter ‘N’ |
69 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(__q20); |
70 |
| - ^ |
71 |
| -.tmp.cpp: In function ‘constexpr int constant::g()’: |
72 |
| -.tmp.cpp:96:7: error: incomplete type ‘std::tuple_element<0, constant::Q>’ used in nested name specifier |
73 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(__q27); |
74 |
| - ^~~ |
75 |
| -.tmp.cpp:96:50: error: ‘a’ was not declared in this scope |
76 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(__q27); |
77 |
| - ^ |
78 |
| -.tmp.cpp:96:73: error: no matching function for call to ‘get(constant::Q&)’ |
79 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(__q27); |
80 |
| - ^ |
81 |
| -.tmp.cpp:40:33: note: candidate: template<int N> constexpr int constant::get(constant::Q&&) |
82 |
| - template<int N> constexpr int get(Q &&) { return N * N; } |
83 |
| - ^~~ |
84 |
| -.tmp.cpp:40:33: note: template argument deduction/substitution failed: |
85 |
| -.tmp.cpp:96:73: note: couldn't deduce template parameter ‘N’ |
86 |
| - std::tuple_element<0, constant::Q>::type&& a = constant::get(__q27); |
87 |
| - ^ |
88 |
| -.tmp.cpp:97:7: error: incomplete type ‘std::tuple_element<1, constant::Q>’ used in nested name specifier |
89 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(__q27); |
90 |
| - ^~~ |
91 |
| -.tmp.cpp:97:50: error: ‘b’ was not declared in this scope |
92 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(__q27); |
93 |
| - ^ |
94 |
| -.tmp.cpp:97:73: error: no matching function for call to ‘get(constant::Q&)’ |
95 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(__q27); |
96 |
| - ^ |
97 |
| -.tmp.cpp:40:33: note: candidate: template<int N> constexpr int constant::get(constant::Q&&) |
98 |
| - template<int N> constexpr int get(Q &&) { return N * N; } |
99 |
| - ^~~ |
100 |
| -.tmp.cpp:40:33: note: template argument deduction/substitution failed: |
101 |
| -.tmp.cpp:97:73: note: couldn't deduce template parameter ‘N’ |
102 |
| - std::tuple_element<1, constant::Q>::type&& b = constant::get(__q27); |
103 |
| - ^ |
104 |
| -.tmp.cpp:98:7: error: incomplete type ‘std::tuple_element<2, constant::Q>’ used in nested name specifier |
105 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(__q27); |
106 |
| - ^~~ |
107 |
| -.tmp.cpp:98:50: error: ‘c’ was not declared in this scope |
108 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(__q27); |
109 |
| - ^ |
110 |
| -.tmp.cpp:98:73: error: no matching function for call to ‘get(constant::Q&)’ |
111 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(__q27); |
112 |
| - ^ |
113 |
| -.tmp.cpp:40:33: note: candidate: template<int N> constexpr int constant::get(constant::Q&&) |
114 |
| - template<int N> constexpr int get(Q &&) { return N * N; } |
115 |
| - ^~~ |
116 |
| -.tmp.cpp:40:33: note: template argument deduction/substitution failed: |
117 |
| -.tmp.cpp:98:73: note: couldn't deduce template parameter ‘N’ |
118 |
| - std::tuple_element<2, constant::Q>::type&& c = constant::get(__q27); |
119 |
| - ^ |
| 1 | +.tmp.cpp:78:48: error: no matching function for call to 'get' |
| 2 | + std::tuple_element<0, constant::Q>::type a = constant::get<0ul>(constant::__q17); |
| 3 | + ^~~~~~~~~~~~~~~~~~ |
| 4 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 5 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 6 | + ^ |
| 7 | +.tmp.cpp:79:48: error: no matching function for call to 'get' |
| 8 | + std::tuple_element<1, constant::Q>::type b = constant::get<1ul>(constant::__q17); |
| 9 | + ^~~~~~~~~~~~~~~~~~ |
| 10 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 11 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 12 | + ^ |
| 13 | +.tmp.cpp:80:48: error: no matching function for call to 'get' |
| 14 | + std::tuple_element<2, constant::Q>::type c = constant::get<2ul>(constant::__q17); |
| 15 | + ^~~~~~~~~~~~~~~~~~ |
| 16 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 17 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 18 | + ^ |
| 19 | +.tmp.cpp:85:50: error: no matching function for call to 'get' |
| 20 | + std::tuple_element<0, constant::Q>::type a = constant::get<0ul>(__q20); |
| 21 | + ^~~~~~~~~~~~~~~~~~ |
| 22 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 23 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 24 | + ^ |
| 25 | +.tmp.cpp:86:50: error: no matching function for call to 'get' |
| 26 | + std::tuple_element<1, constant::Q>::type b = constant::get<1ul>(__q20); |
| 27 | + ^~~~~~~~~~~~~~~~~~ |
| 28 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 29 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 30 | + ^ |
| 31 | +.tmp.cpp:87:50: error: no matching function for call to 'get' |
| 32 | + std::tuple_element<2, constant::Q>::type c = constant::get<2ul>(__q20); |
| 33 | + ^~~~~~~~~~~~~~~~~~ |
| 34 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 35 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 36 | + ^ |
| 37 | +.tmp.cpp:85:46: error: variables defined in a constexpr function must be initialized |
| 38 | + std::tuple_element<0, constant::Q>::type a = constant::get<0ul>(__q20); |
| 39 | + ^ |
| 40 | +.tmp.cpp:96:52: error: no matching function for call to 'get' |
| 41 | + std::tuple_element<0, constant::Q>::type a = constant::get<0ul>(__q27); |
| 42 | + ^~~~~~~~~~~~~~~~~~ |
| 43 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 44 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 45 | + ^ |
| 46 | +.tmp.cpp:97:52: error: no matching function for call to 'get' |
| 47 | + std::tuple_element<1, constant::Q>::type b = constant::get<1ul>(__q27); |
| 48 | + ^~~~~~~~~~~~~~~~~~ |
| 49 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 50 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 51 | + ^ |
| 52 | +.tmp.cpp:98:52: error: no matching function for call to 'get' |
| 53 | + std::tuple_element<2, constant::Q>::type c = constant::get<2ul>(__q27); |
| 54 | + ^~~~~~~~~~~~~~~~~~ |
| 55 | +.tmp.cpp:40:33: note: candidate function not viable: no known conversion from 'constant::Q' to 'constant::Q &&' for 1st argument |
| 56 | + template<int N> constexpr int get(Q &&) { return N * N; } |
| 57 | + ^ |
| 58 | +.tmp.cpp:96:48: error: variables defined in a constexpr function must be initialized |
| 59 | + std::tuple_element<0, constant::Q>::type a = constant::get<0ul>(__q27); |
| 60 | + ^ |
| 61 | +11 errors generated. |
0 commit comments