blob: 655f406ed80acbf33be41f3ec0f8339df923b779 [file] [log] [blame]
template<int T, class U = int> class D
{
public:
int f();
};
template<int T, class U> int D<T,U>::f()
{
return T+sizeof(U);
}
template<template<int> class D,class E> class C
{
D<1> d;
public:
int f() { return d.f(); }
};
template<template<int> class D> int f(D<2> &d1)
{
d1.f();
return 0;
}
template<template<int> class D> int f(D<1> &d1)
{
d1.f();
return 0;
}
int main()
{
D<1> c1;
f(c1);
}