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