#include #include #include #include #include struct XXX { std::string name; int age; template void serialize(Archive & ar, const unsigned int) { ar & BOOST_SERIALIZATION_NVP(name) & BOOST_SERIALIZATION_NVP(age); } }; BOOST_SERIALIZATION_SHARED_PTR(XXX) struct YYY { boost::shared_ptr xxx; template void serialize(Archive & ar, const unsigned int) { ar & BOOST_SERIALIZATION_NVP(xxx); } }; int main(int argc, char**argv) { XXX xxx; YYY yyy; std::ifstream ifs("test_output", std::ios::binary); typedef boost::archive::binary_iarchive InArchive; InArchive ia(ifs); yyy.serialize(ia, 1); return 0; }