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