1 // PR c++/29236
2 
3 template <typename T> struct A {};
4 
5 template <template <typename> class P>
6 struct B {
7     template <template <typename> class Q>
8     friend bool foo (const B<Q>& a);
9 };
10 
11 template <template <typename> class Q>
12 bool foo (const B<Q>& a);
13 
bar()14 void bar () {
15   B<A> a;
16   foo (a);
17 }
18