有一个标准的样板方法来获取类型的大小:
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;
}
还是我需要为所有类型手动编写?
够
sizeof(x) * CHAR_BIT了,因为它sizeof(char)总是等于 1。