1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 3 namespace N { 4 template<class T> class X; // expected-note {{'N::X' declared here}} \ 5 // expected-note {{explicitly specialized declaration is here}} 6 } 7 8 // TODO: Don't add a namespace qualifier to the template if it would trigger 9 // the warning about the specialization being outside of the namespace. 10 template<> class X<int> { /* ... */ }; // expected-error {{no template named 'X'; did you mean 'N::X'?}} \ 11 // expected-warning {{first declaration of class template specialization of 'X' outside namespace 'N' is a C++11 extension}} 12 13 namespace N { 14 15 template<> class X<char*> { /* ... */ }; // OK: X is a template 16 17 } 18