
I have the following code: #include <list> #include <utility> #include <vector> #include <string> #include <fstream> #include <boost/archive/text_oarchive.hpp> #include <boost/archive/text_iarchive.hpp> #include <boost/serialization/access.hpp> #include <boost/serialization/string.hpp> #include <boost/serialization/vector.hpp> #include <boost/serialization/utility.hpp> #include <boost/serialization/map.hpp> #include <boost/serialization/base_object.hpp> using namespace std; int main() { list< pair<string, string> > stlStr; pair<string, string> par1("aaa", "bbb"); stlStr.push_back(make_pair("key", par1)); std::ofstream ofs("filename"); { boost::archive::text_oarchive serial(ofs); serial << stlStr; } std::ifstream ifs("filename"); boost::archive::text_iarchive serial2(ifs); list<pair<string, string> > lst; serial2 >> lst; return 0; } that throw the following compilation error: error: 'class std::list<std::pair<std::basic_string<char>, std::basic_string<char> > >' has no member named 'serialize'. I'd like to know if I have to manually implement the serialization of this nested list. Because for example I haven't problems with maps that have inside a pair : map<string, pair<string, string> >. Thanks !