1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// { dg-do compile } // Origin: Wolfgang Bangerth <bangerth@dealii.org> // PR c++/15664: Template substitution of template template parameter template <int N> struct S { template<template<typename> class A> friend void foo(); }; template<template<typename> class A> void foo(); template <typename> struct X {}; int main () { S<1> s; foo<X>(); }