1

我正在尝试同时使用 Cereal 的名称-值-对功能和延迟序列化功能,但我似乎无法让它工作。

似乎cereal::defer( CEREAL_NVP( vecOfSharedPtrs ) )save(Archive& ar) const函数中有效,产生了正确命名的输出,但在其中写入相同的输出load(Archive& ar)会产生编译错误。

我觉得我用错了,还是不支持?

4

1 回答 1

1

我最近遇到了同样的情况。我相信你不需要cereal::defer在你的加载函数中使用。我在下面发布了一个工作摘录。

  template <class Archive>
  void load(Archive& archive) {
    //deserializes components
    archive(values);
  }

  template <class Archive>
  void save(Archive& archive) const {
    //serializes components
    archive(cereal::defer(CEREAL_NVP(values)));
    archive.serializeDeferments();
  }
于 2020-08-01T23:34:54.843 回答