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