title: Cereal std::vector serialization
body: <p>I want to give a shot to cereal serialization library . I am at beginner level c++ and retired level at java :)</p>
  
  <p>I try to serialize vector with it but cant.</p>
  
  <p>Any suggestion ? 
  I have below codes and gives an error. What am I missing here ?</p>
  
  <pre><code>struct personv1 {
      matrix&lt;float, 0, 1 &gt; _descriptor;
      string person_name;
      string notes;
      matrix&lt;rgb_pixel&gt; s_chips;
      template&lt;class Archive&gt;
      void serialize(Archive &amp; archive)
      {
          // serialize things by passing them to the archive
          archive( _descriptor, person_name,notes , s_chips );
      }
  };
  
  std::vector&lt;personv1&gt; person;
  </code></pre>
  
  <p>and:</p>
  
  <pre><code>std::stringstream ss;
  
  {
      cereal::BinaryOutputArchive oarchive(ss); // Create an output archive
  
      oarchive(person); // Write the data to the archive
  } // archive goes out of scope, ensuring all contents are flushed
  
  {
      cereal::BinaryInputArchive iarchive(ss); // Create an input archive
      iarchive(person); // Read the data from the archive
  }
  </code></pre>
  
  <p>But it gives error:</p>
  
  <pre><code>    ---GUI-master-MAC/cereal/cereal.hpp:462: error: static_assert failed "cereal could not find any output serialization functions for the provided type and archive combination. 
  
      Types must either have a serialize function, load/save pair, or load_minimal/save_minimal pair (you may not mix these). 
      Serialize functions generally have the following signature: 
  
       template&lt;class Archive&gt; 
         void serialize(Archive &amp; ar) 
         { 
           ar( member1, member2, member3 ); 
         } 
  
  static_assert(traits::detail::count_output_serializers&lt;T, ArchiveType&gt;::value != 0,
              ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  </code></pre>