class A
{
};
template <template<typename...> class T, typename... Args>
class B
{
T<Args...> x;
};
template <typename T>
struct MakeTemplate {
template <typename...> using type = T;
};
template <typename T>
class Testclass {
T datamember;
};
main() {
B<MakeTemplate<double>::type > b1;
B<Testclass,int> b2;
}
Y2xhc3MgQQp7Cn07Cgp0ZW1wbGF0ZSA8dGVtcGxhdGU8dHlwZW5hbWUuLi4+IGNsYXNzIFQsIHR5cGVuYW1lLi4uIEFyZ3M+CmNsYXNzIEIKewogICAgVDxBcmdzLi4uPiB4Owp9OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0cnVjdCBNYWtlVGVtcGxhdGUgewoJdGVtcGxhdGUgPHR5cGVuYW1lLi4uPiB1c2luZyB0eXBlID0gVDsKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpjbGFzcyBUZXN0Y2xhc3MgewoJVCBkYXRhbWVtYmVyOwp9OwoKbWFpbigpIHsKCiAgICBCPE1ha2VUZW1wbGF0ZTxkb3VibGU+Ojp0eXBlID4gYjE7CiAgICBCPFRlc3RjbGFzcyxpbnQ+IGIyOwp9