Baru-baru ini muncul ulasan kode yang dalam contoh berikut:
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));
Kita seharusnya menggunakan sizeof(std::underlying_type<A>::type)
bukan sizeof(A)
. Mungkinkah ini berbeda? Apakah seseorang memiliki kutipan standar yang menjamin ini?
sizeof(A)
? Juga: jika mereka berbeda ukuran (tidak mungkin), menggunakan sizeof(std::underlying_type<A>)
akan menjadi salah.
sizeof(std::underlying_type<A>)
mungkin 1
. Apakah maksud Anda ::type
?
A
s, orang pasti ingin menggunakan sizeof(A)
dan kodenya seharusnya tidak peduli apa jenisnya A
.