6

Есть стандартный, шаблонный способ получить размер типов:

template <typename Type>
size_t GetSize()
{
   static_assert( false, "Unknown");
   return 0;
}
template <>
size_t GetSize< int32_t >()
{
    return 32;
}
template <>
size_t GetSize< char >()
{
    return CHAR_BIT;
}

Или нужно вручную написать для всех типов?

rikimaru2013
  • 2,653

1 Answers1

10

Достаточно sizeof(x) * CHAR_BIT, потому что sizeof(char) всегда равен 1.

Abyx
  • 31,143