c++ - 序列化包含 char* 的结构

标签 c++ serialization boost

序列化 char* 字符串时出错 error C2228: left of '.serialize' must have class/struct/union 我可以使用 std::string 然后得到一个const char* 从它。但我需要 char* 字符串。

最佳答案

错误消息说明了一切,boost 序列化不支持序列化指向原始类型的指针。

您可以在商店代码中执行类似的操作:

int len = strlen(string) + 1;
ar & len;
ar & boost::serialization::make_binary_object(string, len);

在加载代码中:

int len;
ar & len;
string = new char[len]; //Don't forget to deallocate the old string
ar & boost::serialization::make_binary_object(string, len);

关于c++ - 序列化包含 char* 的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2730000/

相关文章:

c++:我在我的数组中得到了一个奇怪的值

c++ - 是否可以使用支撑初始化列表构造 boost::circular_buffer ?

c++ - 非静态数据成员的 thread_local 数据,再一次

c++ - 自动化 C++ 构建

c++ - 谷歌模拟 : Mock private variable member that is instantiated in target class's constructor

go - 使用 goavro 处理多种类型的解码数据

java - Java中的序列化顺序

c++ - 使用 boost python 传递函数引用

C++ 行和列矩阵操作

database - Golang DB反/序列化方法(数据库/sql之上的sqlx)