端口项目 VS2003 -> VS2013 错误 C2039 序列化不是hash_Map的成员
Port project VS2003 -> VS2013 error C2039 serialize is not a member of hash_Map
尝试将我公司的一些软件从Visual Studio 2003更新到2013。我们使用了很多必须从不同位置移植的库,但是在处理了所有提升复制并将其添加到其他包含目录中C++之后,我仍然收到以下错误。
错误 C2039" '序列化' : 不是 'stdext::hash_map 键、数据、Hash_Traits、std::分配器>"的成员
此错误发生在 access.hpp 的提升/序列化中。
由于知识产权问题,我实际上不能包含我的任何代码,但任何帮助将不胜感激。
谢谢
应通过实现自定义点使容器类可序列化。
我假设您升级到std::unordered_map
(因为您应该),然后您可以按照我在这里编写的代码进行操作: C++ 使用自定义对象作为键的hash_map的 Boost.Serialization 错误
注意 我为
std::unordered_map
定义了序列化,因此您不再需要使用已弃用的 GNU/MSVC 库扩展。(另请参阅此错误报告/补丁)
#include <unordered_map>
#include <boost/serialization/collections_save_imp.hpp>
#include <boost/serialization/collections_load_imp.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/split_free.hpp>
namespace boost { namespace serialization {
template<class Archive, typename... TArgs >
inline void save(Archive & ar, std::unordered_map<TArgs...> const&t, unsigned) {
boost::serialization::stl::save_collection<Archive, std::unordered_map<TArgs...> >(ar, t);
}
template<class Archive, typename... TArgs >
inline void load(Archive & ar, std::unordered_map<TArgs...> &t, unsigned) {
boost::serialization::stl::load_collection<Archive,
std::unordered_map<TArgs...>,
boost::serialization::stl::archive_input_map<
Archive, std::unordered_map<TArgs...> >,
boost::serialization::stl::no_reserve_imp<std::unordered_map<TArgs...> >
>(ar, t);
}
// split non-intrusive serialization function member into separate
// non intrusive save/load member functions
template <class Archive, typename... TArgs>
inline void serialize(Archive & ar, std::unordered_map<TArgs...> &t, unsigned file_version) {
boost::serialization::split_free(ar, t, file_version);
}
} }
相关文章:
- 如何在C++中序列化结构数据
- 序列化,没有库的整数,得到奇怪的结果
- 如何知道QDataStream不能反序列化某些内容
- 如何使用Python从C++中读取谷物序列化数据
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 带有Protobuf序列化的C++Hazelcast:字符串不是UTF-8格式的
- 自定义对象的dlib序列化在gcc中失败
- C++boost序列化多态性问题
- 增强基于 XML class_id的反序列化
- 提升反序列化对象具有 nan 或 -nan 值
- 在 cpp 中的平面缓冲区中序列化对象
- 每次进行继承时都需要提升::序列化::base_object吗?
- 如何在 c++ 非托管代码中反序列化 byte[] 的 json 字符串?
- 提升序列化 1:73 的向后兼容性问题
- 将 boost 序列化对象的 asio::streambuf 表示转换为 Beast 的 DynamicBody req.body()
- 为什么 nlohmann/json 序列化 "null" 而不是在 double 上"0"?
- 如何反序列化数组?
- 如何使用提升序列化?
- 序列化多晶型接口
- FlatBuffers/Protobuf 中是否有支持任意 24 位有符号整数定义的可移植二进制序列化架构?