Merge -r 127928:132243 from trunk
[official-gcc.git] / gcc / testsuite / g++.dg / template / partial5.C
blobaa32e3b8a419cd5aa1bc982c7cd83edcab0c778e
1 // PR c++/33964
3 template<typename T>
4 struct X { };
6 template<typename T>
7 struct X<typename T::foo> { }; // { dg-error "not used|T" }
9 template<int N>
10 struct X<int[N]> {}; // okay
13 template<typename T, typename T::foo V>
14 struct Y { };
16 template<typename T, typename U, U v>
17 struct Y<T, v> { }; // { dg-error "not used|U" }
20 template<typename T, T V>
21 struct Z { };
23 template<typename T>
24 struct Z<T, (T)0> { }; // { dg-error "involves template parameter" }