#include #include #include #include #include class Base { friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int version) { } virtual void vTest( ) { } }; class Level1 : public Base { friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object(*this); } }; class Level2 : public Level1 { friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object(*this); } }; class Level3 : public Level2 { friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object(*this); } }; class Level4 : public Level3 { friend class boost::serialization::access; template void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object(*this); } }; BOOST_CLASS_EXPORT(Base) BOOST_CLASS_EXPORT(Level1) BOOST_CLASS_EXPORT(Level2) BOOST_CLASS_EXPORT(Level3) BOOST_CLASS_EXPORT(Level4) int _tmain(int argc, _TCHAR* argv[]) { _CrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF); return 0; }