私はCereal C++ v1.1.1を使用しており、ドキュメントに記載されている例と同様に、次のことを試みています:
#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
ですか?