typedef typename std::conditional<(size==1ul), std::uint8_t, typename std::conditional<(size==2ul), std::uint16_t, typename std::conditional<(size<=4ul), std::uint32_t, std::uint64_t >::type >::type >::type type