
I am unable to serialize STL containers. Here's an example, with error message foo.cpp: #include <iostream> #include <fstream> #include <boost/archive/text_iarchive.hpp> #include <boost/archive/text_oarchive.hpp> #include <boost/serialization/list.hpp> #include <boost/archive/tmpdir.hpp> class bus_route { friend class boost::serialization::access; std::list<int> stops; template<class Archive> void serialize(Archive & ar, const unsigned int version) { ar & stops; } public: bus_route(){} }; main() { std::ofstream ofs("removeme"); boost::archive::text_oarchive oa(ofs); bus_route a; oa << a; } ==== $ gcc -o foo foo.cpp /usr/include/boost/archive/detail/oserializer.hpp: In function 'void boost::archive::save(Archive&, T&) [with Archive = boost::archive::text_oarchive, T = bus_route]': /usr/include/boost/archive/basic_text_oarchive.hpp:78: instantiated from 'void boost::archive::basic_text_oarchive<Archive>::save_override(T&, int) [with T = bus_route, Archive = boost::archive::text_oarchive]' /usr/include/boost/archive/detail/interface_oarchive.hpp:78: instantiated from 'Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(T&) [with T = bus_route, Archive = boost::archive::text_oarchive]' foo.cpp:29: instantiated from here /usr/include/boost/archive/detail/oserializer.hpp:567: error: invalid application of 'sizeof' to incomplete type 'boost::STATIC_ASSERTION_FAILURE<false>' Any idea what I'm doing wrong?