我使用Cereal C++ v1.1.1和類似的文件中給出的example我嘗試以下操作:穀物JSON輸出遺漏右大括號
#include <sstream>
#include <iostream>
#include <cereal/archives/json.hpp>
int main() {
std::ostringstream os;
cereal::JSONOutputArchive archive(os);
int x = 12;
archive(CEREAL_NVP(x));
std::cout << os.str(); // JUST FOR DEMONSTRATION!
}
我期望有以下幾點:
{
"x":12
}
但最後的大括號缺失。任何想法在代碼中缺少什麼?
更新:
加入archive.finishNode()
似乎解決了問題。但我會說這不是解決方案。根據operator()
文檔,調用操作員序列化輸入參數,爲什麼我應該添加額外的finishNode
?
幹得好!謝謝 :) –