Это чисто гипотетически, но я не уверен, приведет ли следующий код к неопределенному поведению в соответствии со спецификацией C++. Я хотел бы сделать копию байтов в объекте, взорвать объект, перезаписав его нулями, а затем скопировать старые байты обратно. Могу ли я сделать это, не вызывая неопределенного поведения?
Пример кода:
NonPODType o;
char bytes[sizeof(o)];
memcpy(bytes, &o, sizeof(o));
memset(&o, 0, sizeof(o));
memcpy(&o, bytes, sizeof(o));