0

我刚刚迁移到 Cereal 1.2.0(从 1.1.2 迁移),使用 JSONOutputArchive 或 XMLOutputArchive 时出现编译错误(即包括“cereal/archives/json.hpp”或“cereal/archives/xml.hpp” )

std::stringstream outParamStream;

foo.enable = true;
foo.size = 12;

{
  cereal::JSONOutputArchive outArchive(outParamStream);
  outArchive(foo);
}

doSomeStuffWith(inParamStream->str());

确切的错误是:

..sources/ext/cereal/archives/json.hpp:158: error: looser throw specifier for 'virtual cereal::JSONOutputArchive::~JSONOutputArchive()'

..sources/ext/cereal/archives/json.hpp:402: error: looser throw specifier for 'virtual cereal::JSONInputArchive::~JSONInputArchive()'

..sources/ext/cereal/cereal.hpp:584: error:   overriding 'virtual cereal::InputArchive<cereal::JSONInputArchive>::~InputArchive() noexcept (true)'

我使用-std=c++11gcc 版本 4.7.3编译

我确实需要一个std::string,所以我不能移动到二进制或便携式二进制存档。

有没有其他人在使用 Cereal 1.2.0 时遇到过这个错误?

我错过了什么吗(我不敢相信他们发布了标题甚至没有编译的东西)?

谢谢 !

4

0 回答 0