|
11 | 11 | template<typename T> class t;
|
12 | 12 |
|
13 | 13 |
|
14 |
| -#line 91 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
| 14 | +#line 105 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
15 | 15 | template<typename T> class v;
|
16 | 16 |
|
17 | 17 |
|
@@ -45,15 +45,15 @@ template<typename T> auto id(cpp2::in<std::integral_constant<cpp2::i32,T::value>
|
45 | 45 | auto main() -> int;
|
46 | 46 |
|
47 | 47 |
|
48 |
| -#line 91 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
| 48 | +#line 105 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
49 | 49 | template<typename T> class v {
|
50 | 50 | public: explicit v(T const& x);
|
51 |
| -#line 92 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
| 51 | +#line 106 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
52 | 52 | public: auto operator=(T const& x) -> v& ;
|
53 | 53 |
|
54 | 54 | public: v(v const&) = delete; /* No 'that' constructor, suppress copy */
|
55 | 55 | public: auto operator=(v const&) -> void = delete;
|
56 |
| -#line 93 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
| 56 | +#line 107 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
57 | 57 | };
|
58 | 58 |
|
59 | 59 |
|
@@ -138,13 +138,27 @@ auto main() -> int{
|
138 | 138 | (void) []<typename T>() -> void{(void) []() -> void{(void) [](cpp2::in<typename T::value_type> x) -> void{(void) []() -> void{}; }; }; };
|
139 | 139 | (void) []<typename T>() -> void{(void) [](cpp2::in<typename T::value_type> x) -> void{(void) []() -> void{(void) []() -> void{}; }; }; };
|
140 | 140 | (void) []<typename T>(cpp2::in<typename T::value_type> x) -> void{(void) []() -> void{(void) []() -> void{(void) []() -> void{}; }; }; };
|
| 141 | + |
| 142 | + // Lookup. |
| 143 | + { |
| 144 | + using alias = std::integral_constant<cpp2::i32,0>; |
| 145 | + (void) alias::value_type{0};// Non-dependent. |
| 146 | + } |
| 147 | + (void) []<typename T>(T const& _) -> void{ |
| 148 | + using alias = std::integral_constant<T,0>; |
| 149 | + (void) typename alias::value_type{0};// Dependent. |
| 150 | + { |
| 151 | + using alias = std::integral_constant<cpp2::i32,0>; |
| 152 | + (void) typename alias::value_type{0};// Non-dependent. |
| 153 | + } |
| 154 | + }(0); |
141 | 155 | }
|
142 | 156 |
|
143 |
| -#line 92 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
| 157 | +#line 106 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
144 | 158 | template <typename T> v<T>::v(T const& x){}
|
145 |
| -#line 92 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
| 159 | +#line 106 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
146 | 160 | template <typename T> auto v<T>::operator=(T const& x) -> v& {
|
147 | 161 | return *this;
|
148 |
| -#line 92 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
| 162 | +#line 106 "pure2-bugfix-for-dependent-types-and-deducible-parameters.cpp2" |
149 | 163 | }
|
150 | 164 |
|
0 commit comments