view gcc/testsuite/g++.dg/cpp0x/alias-decl-5.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { 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
}