我正在使用C ++中的Boost :: Serialization库。 当我想恢复对象时,我使用下面的代码:
// ostr is of type std::ostringstream
std::vector<Certificate *> newCRL;
{
std::istringstream ifs(ostr.str());
boost::archive::text_iarchive ia(ifs);
ia >> newCRL;
}
如果ostr的长度很短,我可以成功恢复原始对象,但是 我遇到的问题是长期的ostr。如果ostr很大,则在运行时抛出以下异常:
std::length_error: basic_string::resize
我认为std::istringstream ifs(ostr.str());
是此异常的来源。
有没有解决这个问题,我可以用来重建大型物体?