title: reinterpret_cast for 'serializing' data, byte order and alignment on receiving end
body: <p>If we have a POD struct say A, and I do this:</p>
  
  <pre><code>char* ptr = reinterpret_cast&lt;char*&gt;(A);
  char buf[20];
  for (int i =0;i&lt;20; ++i)
     buf[i] = ptr[i];
  network_send(buf,..);
  </code></pre>
  
  <p>If the recieving end remote box, is not necessarily same hardware or OS, can I safely do this to 'unserialize':</p>
  
  <pre><code>void onRecieve(..char* buf,..) {
    A* result = reinterpret_cast&lt;A*&gt;(buf); // given same bytes in same order from the sending end
  </code></pre>
  
  <hr>
  
  <p>Will the 'result' always be valid?  The C++ standard states with POD structures, the result of reinterpret_cast should point to the first member, but does it mean the actual byte order will be correct also, even if the recieving end is a different platform?</p>