#include <iostream>
#include <cstdint>

template <int n> class Int { };
template <> class Int<8> { public: typedef int8_t Type; };
template <> class Int<16> { public: typedef int16_t Type; };
template <> class Int<32> { public: typedef int32_t Type; };
template <> class Int<64> { public: typedef int64_t Type; };

int main()
{
    Int<8>::Type a;
    Int<16>::Type b;
    Int<32>::Type c;
    Int<64>::Type d;
    std::cout << sizeof a << std::endl;
    std::cout << sizeof b << std::endl;
    std::cout << sizeof c << std::endl;
    std::cout << sizeof d << std::endl;
}
