#include #include using boost::serialization::make_nvp; class B { public: virtual ~B() {} template void serialize(Archive& ar, unsigned int version) { ar & make_nvp("i", i); } int i; }; class D : public B { public: template void serialize(Archive& ar, unsigned int) { ar & boost::serialization::base_object(*this); } };