Прежде всего, поддерживает ли boost::serialization unordered_set сейчас? Я не нашел заголовок boost/serialization/unordered_set.hpp.
Вот код, который я пытался реализовать:
namespace boost {
namespace serialization{
template<class Archive, typename T, typename H, typename P, typename A>
void save(Archive &ar,
const unordered::unordered_set<T,H,P,A> &s, const unsigned int) {
vector<T> vec(s.begin(),s.end());
ar<<vec;
}
template<class Archive, typename T, typename H, typename P, typename A>
void load(Archive &ar,
unordered::unordered_set<T,H,P,A> &s, const unsigned int) {
vector<T> vec;
ar>>vec;
std::copy(vec.begin(),vec.end(),
std::inserter(s,s.begin()));
}
template<class Archive, typename T, typename H, typename P, typename A>
void serialize(Archive &ar,
unordered::unordered_set<T,H,P,A> &s, const unsigned int version) {
boost::serialization::split_free(ar,s,version);
}
}
}
Вот ошибка:
'class std::vector<int, std::allocator<int> >' has no member named 'serialize'
Кроме того, я все еще получил предупреждение о следующем коде:
boost::archive::text_oarchive(ss)<<s1;
Warning:comparison between signed and unsigned integer expressions [-Wsign-compare]
Я не уверен, нормально ли пренебрегать этим.
boost/serialization/hash_set.hpp
? - person TemplateRex   schedule 01.05.2013