1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 2 3template<typename T> 4struct X0 { 5 struct MemberClass; 6 7 T* f0(T* ptr); 8 9 static T* static_member; 10}; 11 12template class X0<int(int)>; // ok; nothing gets instantiated. 13 14template<typename T> 15struct X0<T>::MemberClass { 16 T member; 17}; 18 19template<typename T> 20T* X0<T>::f0(T* ptr) { 21 return ptr + 1; 22} 23 24template<typename T> 25T* X0<T>::static_member = 0; 26 27template class X0<int>; // ok 28 29 30template<typename T> 31struct X1 { 32 enum class E { 33 e = T::error // expected-error 2{{no members}} 34 }; 35}; 36template struct X1<int>; // expected-note {{here}} 37 38extern template struct X1<char>; // ok 39 40template struct X1<char>; // expected-note {{here}} 41