0

次のコードを使用して、オブジェクトをバイナリ データとしてシリアル化/逆シリアル化しようとしています。

MyDTO dto1;    
std::ostringstream os(std::stringstream::binary);
{
    cereal::BinaryOutputArchive oarchive(os); // Create an output archive
    oarchive(dto1);
}

MyDTO dto2;

std::istringstream is(os.str(), std::stringstream::binary);
{
    cereal::BinaryInputArchive iarchive(is); // Create an input archive
    try {
        iarchive(dto2);
    }
    catch (std::runtime_error e) {
        e.what();
    }
}

コードを実行すると、例外がキャッチされ、次のメッセージが表示されます。

"Failed to read 8 bytes from input stream! Read 0"

何が問題なのかを理解するのを手伝ってくれる人はいますか?

4

1 に答える 1