序列化 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/