#include #include #include typedef boost::archive::binary_oarchive boostOArchive; typedef boost::archive::binary_iarchive boostIArchive; #define TEMPLATE_INSTANTIATION_FOR_BOOST_ARCHIVE( T ) \ template void T ::serialize(boostIArchive&, unsigned int);\ template void T ::serialize(boostOArchive&, unsigned int);\ class AccessTestBase { protected: virtual ~AccessTestBase() {}; private: friend class boost::serialization::access; template void serialize( Archive&, const unsigned int ) {}; }; BOOST_CLASS_EXPORT_KEY( AccessTestBase ); BOOST_CLASS_EXPORT_IMPLEMENT( AccessTestBase ); TEMPLATE_INSTANTIATION_FOR_BOOST_ARCHIVE( AccessTestBase ) class AccessTestDerB: public AccessTestBase { private: friend class boost::serialization::access; // template // void serialize( Archive&, const unsigned int ) // {}; public: AccessTestDerB(){} }; BOOST_CLASS_EXPORT_KEY( AccessTestDerB ); BOOST_CLASS_EXPORT_IMPLEMENT( AccessTestDerB ); TEMPLATE_INSTANTIATION_FOR_BOOST_ARCHIVE(AccessTestDerB) int main() { return 0; }