#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;
}