【发布时间】:2015-05-12 14:42:38
【问题描述】:
我正在使用Cereal C++ v1.1.1,类似于文档中给出的example,我正在尝试以下操作:
#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?
【问题讨论】: