// RUN: %clang_cc1 -verify %s
template<typename T>
struct A {
void f();
};
template<typename T>
using B = A<T>;
template<typename T>
void B<T>::f() { } // expected-warning {{a declarative nested name specifier cannot name an alias template}}
template<>
void B<int>::f() { } // ok, template argument list of simple-template-id doesn't involve template parameters
namespace N {
template<typename T>
struct D {
void f();
};
template<typename T>
using E = D<T>;
}
template<typename T>
void N::E<T>::f() { } // expected-warning {{a declarative nested name specifier cannot name an alias template}}