#include <iostream>
using namespace std;

template <class T>
struct A {
	void printSize() const { cout << sizeof(typename T::value_type); }
};

template <typename A>
struct X{
	using value_type = A;
};

int main() {
	A<X<char>>{}.printSize();
	return 0;
}