हाल ही में एक कोड समीक्षा में आया था कि निम्नलिखित उदाहरण में:
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
, तो एक निश्चित रूप से उपयोग करना चाहता है sizeof(A)
और कोड को ध्यान नहीं देना चाहिए कि किस प्रकार का A
है।