1 // PR c++/24671 2 // { dg-do compile } 3 4 template<typename> struct A 5 { 6 typedef int X; 7 static const int i = 0; 8 }; 9 10 template<typename> struct B 11 { 12 B(const B&); 13 typedef typename A<char[A<B>::i]>::X Y; // { dg-error "forbids zero-size array" } 14 template<typename T> B(T, Y); 15 }; 16 17 B<int> b(0,0); // { dg-message "required from here" } 18