Недавно появился обзор кода, который в следующем примере:
enum class A : uint8_t
{
VAL1, VAL2
};
...
std::vector<A> vOfA; // Assume this is sized and full of some stuff.
std::memcpy(wire_buffer, vOfA.data(), vOfA.size() * sizeof(A));
Мы должны использовать sizeof(std::underlying_type<A>::type)
вместо sizeof(A)
. Возможно ли, что они могут отличаться? У кого-то есть стандартная цитата, которая гарантирует это?
sizeof(A)
? Кроме того: если они имеют другой размер (маловероятно), использование sizeof(std::underlying_type<A>)
будет просто неправильно.
sizeof(std::underlying_type<A>)
это наверное 1
. Вы имели в виду ::type
?
A
s, определенно хочется использовать, sizeof(A)
и коду не должно быть никакого значения, что это за тип A
.