#include <iostream>
using namespace std;
template<typename T>
class A
{
};
template<typename T>
class B
{
};
template<typename T, template<typename > class AA>
class C
{
AA<int> aa;
};
template<typename T, template<typename > class AA=A>
class D
{
AA<int> aa;
};
int main()
{
C<double, A> ca;
D<double, B> db;
D<double> da;
}