大对象的序列化

时间:2012-05-04 18:34:37

标签: c++ serialization boost boost-serialization istringstream

我正在使用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());是此异常的来源。 有没有解决这个问题,我可以用来重建大型物体?

0 个答案:

没有答案