Son zamanlarda aşağıdaki örnekte bir kod incelemesi geldi:
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)
Bunun yerine kullanmalıyız sizeof(A)
. Bunların hiç değişebilmesi mümkün müdür? Birisi bunu garanti eden bir standart teklif var mı?
sizeof(A)
nedir? Ayrıca: eğer farklı bir boyuta sahiplerse (olası değil), sizeof(std::underlying_type<A>)
kullanımı basit yanlış olur.
sizeof(std::underlying_type<A>)
muhtemelen 1
. Bunu mu demek istediniz ::type
?
A
s ile uğraşırken kesinlikle kullanmak istiyor sizeof(A)
ve kod ne tür bir türün umurunda değil A
.