【发布时间】:2014-05-26 15:21:10
【问题描述】:
#include <boost/serialization/list.hpp>
#include <boost/serialization/string.hpp>
class SerializableSmth
{
friend class boost::serialization::access;
private:
std::list<std::string> data;
template<class Archive> void serialize(Archive & ar, unsigned int version)
{
ar & data;
}
};
BOOST_CLASS_VERSION(SerializableSmth, 1);
问题初探:当data 包含超过~7 个字符的字符串时,它不能被序列化回来。序列化的 text_oarchive 如下所示:
22 serialiation::archive 10 0 1 0 0 2 0 5 test1 13 test2-914166-
(当 test2- 缩短为 5 test2- 时,可以正常工作)。
当使用text_oarchive 而不是std::stringstream 进行序列化并使用boost::iostreams::basic_array 进行反序列化时会发生这种情况。
【问题讨论】:
-
boost::iostreams::basic_array?怎么样?
标签: c++ boost boost-serialization