POD構造体がAと言う場合、私はこれを行います:
char* ptr = reinterpret_cast<char*>(A);
char buf[20];
for (int i =0;i<20; ++i)
buf[i] = ptr[i];
network_send(buf,..);
受信側のリモートボックスが必ずしも同じハードウェアまたはOSであるとは限らない場合、これを安全に実行して「シリアル化を解除」できますか?
void onRecieve(..char* buf,..) {
A* result = reinterpret_cast<A*>(buf); // given same bytes in same order from the sending end
「結果」は常に有効ですか?C ++標準はPOD構造で述べており、reinterpret_castの結果は最初のメンバーを指す必要がありますが、受信側が別のプラットフォームであっても、実際のバイト順序も正しいことを意味しますか?