を受信すると、データ、バイト順と整列「をシリアライズ」:reinterpret_castは、我々はPODが構造言う持っている、と私はこれを行う場合は、エンド
char* ptr = reinterpret_cast<char*>(A);
char buf[20];
for (int i =0;i<20; ++i)
buf[i] = ptr[i];
network_send(buf,..);
recievingは、リモートボックスを終了すると、必ずしも同一のハードウェアではありませんがまたは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の結果は最初のメンバーを指すはずですが、受信側が別のプラットフォームであっても実際のバイトオーダーが正しいことを意味しますか?
ためtemplateforこれを使用し、コンパイラがそれを処理させることを検討していいえ、それは常に有効ではありません。 1つのプラットフォームがビッグエンディアンで、もう1つがリトルエンディアンである場合を考えてみましょう。 [ネットワークバイトオーダー](http://en.wikipedia.org/wiki/Endianness#Endianness_in_networking)は、この非常に問題から生じました... – Cameron
埋め込みもプラットフォームによって異なる可能性があります – bdonlan