#include #include #include #include #include #include #include #include #include class A { public: A(int _a):a(_a){} private: int a; A():a(0){} friend class boost::serialization::access; //uncomment next line to make work as a hack //friend class std::pair; template void serialize(Archive& ar, const unsigned int version) { ar & BOOST_SERIALIZATION_NVP(a); } }; int main(int argc, char** argv) { const A a1(5); { std::ofstream ofile; ofile.open("test.xml"); boost::archive::xml_oarchive oa(ofile); oa< avector; std::vector::value_type v1(A(10)); avector.push_back(v1); { std::ofstream ofile; ofile.open("testvector.xml"); boost::archive::xml_oarchive oa(ofile); oa<>BOOST_SERIALIZATION_NVP(avector); } std::map amap; std::map::value_type m1(1,A(10)); amap.insert(m1); { std::ofstream ofile; ofile.open("testmap.xml"); boost::archive::xml_oarchive oa(ofile); oa<>BOOST_SERIALIZATION_NVP(amap); } return 0; }