序列化包含char*的结构

cpx*_*cpx 2 c++ serialization boost

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

And*_*nck 6

错误信息说明了这一点,在序列化指向原始类型的指针的boost序列化中没有任何支持.

您可以在商店代码中执行以下操作:

int len = strlen(string) + 1;
ar & len;
ar & boost::serialization::make_binary_object(string, len);
Run Code Online (Sandbox Code Playgroud)

并在加载代码中:

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