1 // { dg-do compile { target c++14 } } 2 3 // Template variables and static member variables of template classes are 4 // often confused. 5 6 template<typename T> 7 struct S1 8 { 9 static int n; 10 static int arr[]; 11 }; 12 13 template<typename T> 14 constexpr int var = sizeof (T); 15 16 template<typename T> 17 int S1<T>::n = sizeof (T); 18 19 template<typename T> 20 int S1<T>::arr[sizeof (T)]; 21 22 template<> 23 int S1<int>::n = 8; 24 25 template<> 26 int S1<int>::arr[8]; 27 main()28int main () 29 { 30 S1<int> v1; 31 var<S1<int>>; 32 return 0; 33 } 34