title: Can boost::serialization::access dynamically change versions at run time/programatically?
body: <p>I previously asked <a href="https://stackoverflow.com/questions/10589278/how-to-handle-changes-in-class-structure-and-be-backward-compatible-with-data-ob">this question</a> about how to make "versioned" serializaion using <code>boost::serialization::access</code></p>
  
  <p>I have been able to do some of what I want, but there seem to be significant limitations.  </p>
  
  <p>Specifically, I would like to be able to change the versions at run time and change the serialization version dynamically in the code.  </p>
  
  <p>However, the macro</p>
  
  <pre><code>BOOST_CLASS_VERSION(ClassName, ver)
  </code></pre>
  
  <p>seems not to allow this type of behavior.</p>
  
  <p>I suppose I could make different classes and use them each when I need each, but I would prefer not to since that requires a lot of code changes for us.</p>
  
  <p><strong>Is there a way to programmatically change the class to use different versions during the same execution?</strong></p>
  
  <p>A little more explanation of what we need to do:</p>
  
  <p>The use case I am trying to work with is the program reading in the old version (when it is first run/upgraded), then writing with the NEW version and then also being able to read that NEW version.  </p>