Update concepts branch to revision 131834
[official-gcc.git] / gcc / testsuite / g++.dg / template / explicit-args1.C
blob10d59e157343ac3f937215f9174ea0a374f76269
1 // PR c++/34950
3 template <class T = int> struct policy {
4     typedef int unnecessary;
5 };
7 template <class Policy> struct A {
8     typedef int type;
9     typedef typename Policy::unnecessary unused;
12 template <class T> struct S {
13     typedef int type;
14     typedef typename A<T>::type unused;
17 template <class, class T> typename S<T>::type         foo();
18 template <class>                   S<policy<> >::type foo();
20 template <typename T> int def(T);
21 const int i = def(foo<int>);