title: A concrete example of boost::serialization::traits?
body: <p>Consider a structure to serialize:</p>
  
  <pre><code>struct MyStruct {
     int a;
     std::string b;
  
  template&lt;class Archive&gt;
  void serialize(Archive &amp;ar, const unsigned int)
     {
     ar &amp; a &amp; b;
     }
  };
  </code></pre>
  
  <p>I want to explicitly tag it, using boost::serialization::traits, to be both <code>track_never</code> and <code>object_serializable</code>.  I've stared at the <a href="http://www.boost.org/doc/libs/release/libs/serialization/doc/traits.html" rel="nofollow" title="traits docs">traits docs</a>, but can't seem to get my mind around how to apply it, and can't find an example anywhere. So...</p>
  
  <p>a) What's the code that applies traits to this particular class?</p>
  
  <p>b) What's the <code>BOOST_STATIC_ASSERT()</code> that verifies each is in place?</p>
  
  <p>c) I assume I can't make this class primitive_type since there's no member function or template in a typical archive class that can handle this type directly. Correct?</p>
  
  <p>I don't care about cross-platform or cross-version archive compatibility, just fast reads (and writes) and intruding on <code>MyStruct</code> is OK, but it would be nice to see it done both ways if possible.</p>