1

我正在使用 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());是这个异常的来源。有什么解决方法可以用来重建大物体吗?

4

0 回答 0