1template<int T, class U = int> class D 2{ 3 public: 4 int f(); 5}; 6 7template<int T, class U> int D<T,U>::f() 8{ 9 return T+sizeof(U); 10} 11 12template<template<int> class D,class E> class C 13{ 14 D<1> d; 15 public: 16 int f() { return d.f(); } 17}; 18 19template<template<int> class D> int f(D<1> &d1) 20{ 21 d1.f(); 22 return 0; 23} 24 25int main() 26{ 27 D<1> c1; 28 f(c1); 29} 30