Boost::Serialization ライブラリを C++ で使用しています。オブジェクトを復元する場合は、次のコードを使用します。
// 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());
この例外の原因だと思います。大きなオブジェクトを再構築するために使用できる、これに関する回避策はありますか?