gpt4 book ai didi

c++ - 序列化 boost::unordered_set 时的编译错误

转载 作者:太空狗 更新时间:2023-10-29 21:45:59 25 4
gpt4 key购买 nike

首先,boost::serialization现在支持unordered_set了吗?我没有找到 header 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 库不提供用于序列化 boost.unordered 容器的序列化支持。

http://meetingcpp.com/index.php/talkview13/items/2.html

关于c++ - 序列化 boost::unordered_set 时的编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16314996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com