#include <iostream>
using namespace std;
template<template<class, class...> class C, class T, class... OtherTs>
T A_helper_valueType(C<T, OtherTs...>&&);
template <class T>
struct A {
void printSize() const { cout << sizeof(decltype(A_helper_valueType(std::declval<T>()))); }
};
template <typename A>
struct X{
};
int main() {
A<X<char>>{}.printSize();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dGVtcGxhdGU8Y2xhc3MsIGNsYXNzLi4uPiBjbGFzcyBDLCBjbGFzcyBULCBjbGFzcy4uLiBPdGhlclRzPgpUIEFfaGVscGVyX3ZhbHVlVHlwZShDPFQsIE90aGVyVHMuLi4+JiYpOwoKdGVtcGxhdGUgPGNsYXNzIFQ+CnN0cnVjdCBBIHsKCXZvaWQgcHJpbnRTaXplKCkgY29uc3QgeyBjb3V0IDw8IHNpemVvZihkZWNsdHlwZShBX2hlbHBlcl92YWx1ZVR5cGUoc3RkOjpkZWNsdmFsPFQ+KCkpKSk7IH0KfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBBPgpzdHJ1Y3QgWHsKfTsKCmludCBtYWluKCkgewoJQTxYPGNoYXI+Pnt9LnByaW50U2l6ZSgpOwoJcmV0dXJuIDA7Cn0=