title: C++ std::mt19937 and rng state save/load & portability
body: <p>I want to be able to save and load the state of an RNG so I can reproduce the same random values from a given point (application save/snapshot).</p>
  
  <p>I see there is an operator &lt;&lt; and >> overload, which seems to save to a string as a sequence of numbers.</p>
  
  <ul>
  <li>Is that the best/only way to save? I wouldn't mind just having the fixed-size binary state value not this space separated string thing that I then need to prefix or put delimiters around for my file format.</li>
  <li>Is this at all portable? e.g. can I transfer this between different compiler versions, or even between MSVC and GCC to produce the same data set given identically configured distributions (to a small margin of error in the case of floating point, and exact for integer maths)?</li>
  </ul>