// { dg-do run } | |
// Test for nested template template parameter feature | |
template <template<template <class> class> class TTT> struct C | |
{ | |
int f() { return 0; } | |
}; | |
template <template <class> class TT> struct D | |
{ | |
int a; | |
}; | |
template <template <class> class TT> struct E | |
{ | |
int a; | |
int b; | |
}; | |
template <template <template <template<class> class> class> class TTT> | |
int g(TTT<E> t) | |
{ | |
TTT<D> tt; | |
return tt.f(); | |
} | |
int main() | |
{ | |
C<E> c; | |
g(c); | |
} |