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