boost serialization of native type defined with typedef contained within struct(增强使用结构中包含的 typedef 定义的本机类型的序列化)
问题描述
我有一个包含各种类型和枚举的 MyFile.hpp 头文件.我如何对给定的示例代码进行序列化/反序列化.
I have a MyFile.hpp header file which contains various types and enums. How do i do serialization/ desrialization of given example code.
//MyFile.hpp
//MyFile.hpp
namespace A {
namespace B {
typedef std::string MyString;
typedef std::map<std::string,std::string> my_type;
typedef bool result;
struct MyTimer
{
int time;
private :
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar & time;
}
};
enum MODE
{
Sleep=1,
HybridSleep,
Hybernate
}
}
}
我需要在对应的 MyFile.cpp 中实现,但不知道我该怎么做.
I need to do implementation in corresponding MyFile.cpp but don't know how do i go ahead.
谢谢,
推荐答案
地图、字符串等可以通过包含相关标题来序列化:
Maps, strings etc. can just be serialized by including the relevant header:
#include <boost/serialization/map.hpp>
#include <boost/serialization/string.hpp>
枚举 算作原始类型:一个>
当且仅当以下条件之一为真时,类型 T 是可序列化的:
A type T is Serializable if and only if one of the following is true:
它是一种原始类型.
it is a primitive type.
原始类型是指 C++ 内置类型,仅是 C++ 内置类型.算术(包括字符)、bool、enum 是原始类型.在下面的序列化特征中,我们为不同的目的以不同的方式定义了一个原始"实现级别.这可能是混淆的根源.
By primitive type we mean a C++ built-in type and ONLY a C++ built-in type. Arithmetic (including characters), bool, enum are primitive types. Below in serialization traits, we define a "primitive" implementation level in a different way for a different purpose. This can be a source of confusion.
- 一个类成员函数序列化
- 一个全局函数序列化
对于更棘手的情况,有 BOOST_STRONG_TYPEDEF
(参见 文档序列化包装器")
For more tricky cases there is BOOST_STRONG_TYPEDEF
(see documentation "Serialization Wrappers")
这篇关于增强使用结构中包含的 typedef 定义的本机类型的序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:增强使用结构中包含的 typedef 定义的本机类型的序列化


基础教程推荐
- C++结构和函数声明。为什么它不能编译? 2022-11-07
- 静态库、静态链接动态库和动态链接动态库的 .lib 文件里面是什么? 2021-01-01
- 我有静态或动态 boost 库吗? 2021-01-01
- 这个宏可以转换成函数吗? 2022-01-01
- 如何通过C程序打开命令提示符Cmd 2022-12-09
- 如何检查GTK+3.0中的小部件类型? 2022-11-30
- 常量变量在标题中不起作用 2021-01-01
- 如何在 C++ 中初始化静态常量成员? 2022-01-01
- 在 C++ 中计算滚动/移动平均值 2021-01-01
- 如何将 std::pair 的排序 std::list 转换为 std::map 2022-01-01