1 // PR c++/71747 2 // { dg-do compile { target c++11 } } 3 4 template < bool > struct A 5 { 6 typedef int type; operatorA7 constexpr bool operator() () const 8 { 9 return true; 10 } 11 }; 12 13 template < bool, typename = int > struct F; 14 template < bool X > 15 // should be: struct F < X, typename A < A < X > {} () >::type > 16 struct F < X, typename A < F < X > {} () >::type > 17 { 18 }; 19 20 F < true > f; // { dg-error "" } 21