blob: 559fc51c5cf2742d5ce7f96f8fe0912fe5fc0dba (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
// { dg-do compile { target c++11 } }
// alias template of a partial specialization
template<class T, class U, class W> struct S0 {};
template<class T, class U> struct S0<T, U, char> {};
template<class T> using AS0 = S0<T, int, char>;
void foo(S0<bool, int, char>);
AS0<bool> a; // OK
void
f()
{
foo(a); //OK
}
// alias template of an explicit specialization of a member template
template<class T>
struct S1 {
template<class U>
struct M {};
};
template<class T> using AM = S1<int>::M<T>;
void bar(S1<int>::M<bool>);
AM<bool> b; //OK.
void
g()
{
bar(b); //OK
}
|