Hi all,
 
has anyone ever used the versioning mechanism of the serialization library together with template classes?
 
What I want to do is something like:
 
   class TemplateA
   {
   public:
      TemplateA();
 
  public:
      ...
   //Serialization stuff
   private:
      friend class boost::serialization::access;
 
      template<class Archive>
      void save(Archive & ar, const unsigned int /*version*/) const
      {
         ar & boost::serialization::make_nvp("HighValue",m_high)
            & boost::serialization::make_nvp("NewData",m_newData);
      }
 
      template<class Archive>
      void load(Archive & ar, const unsigned int version)
      {
         ar & boost::serialization::make_nvp("HighValue",m_high);
 
         if (version > 0)
         {
            ar & boost::serialization::make_nvp("NewData",m_newData);
         }
      }
 
      BOOST_SERIALIZATION_SPLIT_MEMBER();
 
   private:
      T        m_high;
      T        m_newData;
   }; // class TemplateA
 
   BOOST_CLASS_VERSION(TemplateA, 1);
 
 
The above won't compile for sure, but I'm looking for a way to use the versioning without having
to specialize it for each type T which I'm going to use this class with.

 

Best regards

Oliver Mutz