1 // Conceptized version of template/ttp23.C 2 // { dg-do compile { target c++17 } } 3 // { dg-options "-fconcepts" } 4 5 template <class T> concept bool Foo = true; 6 7 template <typename T> struct A {}; 8 9 template <template <Foo> class P> 10 struct B { 11 template <template <Foo> class Q> 12 friend bool foo (const B<Q>& a); 13 }; 14 15 template <template <typename> class Q> 16 bool foo (const B<Q>& a); 17 bar()18void bar () { 19 B<A> a; 20 foo (a); 21 } 22