#pragma once class Base abstract { public: virtual ~Base( ) { } }; class Main : public Base { friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int version) { ar & m_objects; } public: std::vector m_objects; Main( ) { } };