1 // PR c++/33501 2 // { dg-do compile } 3 4 class A; // { dg-message "forward declaration" } 5 6 template <typename T> struct X 7 { 8 static int f (T); // { dg-message "initializing" } 9 static const T &make (); 10 static const bool value = sizeof (f (make ())) == sizeof (int); // { dg-error "invalid use of incomplete type" } 11 }; 12 13 int main()14main () 15 { 16 return X <A>::value; 17 } 18