#include #include #include #include namespace boost { namespace serialization { template inline void save(Archive & ar, const std::tr1::unordered_set &t, const unsigned int /* file_version */) { boost::serialization::stl::save_collection< Archive, std::tr1::unordered_set >(ar, t); } template inline void load(Archive & ar, std::tr1::unordered_set &t, const unsigned int /* file_version */) { boost::serialization::stl::load_collection< Archive, std::tr1::unordered_set, boost::serialization::stl::archive_input_set< Archive, std::tr1::unordered_set >, boost::serialization::stl::no_reserve_imp< std::tr1::unordered_set > >(ar, t); } template inline void serialize(Archive & ar, std::tr1::unordered_set & t, const unsigned int file_version) { boost::serialization::split_free(ar, t, file_version); } } // namespace serialization } // namespace boost #include #include #include #include #include int main(int argc, char *argv[]) { std::stringstream data; { std::tr1::unordered_set disorder; disorder.insert("hello"); disorder.insert("world"); boost::archive::text_oarchive output(data); output << disorder; } std::cout << data.str(); { std::tr1::unordered_set disorder; boost::archive::text_iarchive input(data); input >> disorder; for (std::tr1::unordered_set::const_iterator it = disorder.begin(); it != disorder.end(); ++it) { std::cout << *it << std::endl; } } return 0; }