これはまったくの仮説ですが、次のコードが C++ 仕様に従って未定義の動作になるかどうかはわかりません。オブジェクト内のバイトのコピーを作成し、オブジェクトをゼロで上書きして爆破し、古いバイトをコピーして戻したいと思います。未定義の動作を引き起こさずにそうすることができますか?
サンプルコード:
NonPODType o;
char bytes[sizeof(o)];
memcpy(bytes, &o, sizeof(o));
memset(&o, 0, sizeof(o));
memcpy(&o, bytes, sizeof(o));