OSDN Git Service

PR c++/45114 - Support C++11 alias-declaration
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / cpp0x / alias-decl-5.C
1 // { dg-options "-std=c++0x" }
2
3 // alias template of a partial specialization
4
5 template<class T, class U, class W> struct S0 {};
6 template<class T, class U> struct S0<T, U, char> {};
7 template<class T> using AS0 = S0<T, int, char>;
8 void foo(S0<bool, int, char>);
9
10 AS0<bool> a; // OK
11
12 void
13 f()
14 {
15     foo(a); //OK
16 }
17
18 // alias template of an explicit specialization of a member template
19
20 template<class T>
21 struct S1 {
22     template<class U>
23     struct M {};
24 };
25 template<class T> using AM = S1<int>::M<T>;
26 void bar(S1<int>::M<bool>);
27
28 AM<bool> b; //OK.
29
30 void
31 g()
32 {
33     bar(b); //OK
34 }