41 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s2 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>; // ok28 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>; // ok39 40template struct X1<char>; // expected-note {{here}}41