我正在尝试同时使用 Cereal 的名称-值-对功能和延迟序列化功能,但我似乎无法让它工作。
似乎cereal::defer( CEREAL_NVP( vecOfSharedPtrs ) )
在save(Archive& ar) const
函数中有效,产生了正确命名的输出,但在其中写入相同的输出load(Archive& ar)
会产生编译错误。
我觉得我用错了,还是不支持?
我正在尝试同时使用 Cereal 的名称-值-对功能和延迟序列化功能,但我似乎无法让它工作。
似乎cereal::defer( CEREAL_NVP( vecOfSharedPtrs ) )
在save(Archive& ar) const
函数中有效,产生了正确命名的输出,但在其中写入相同的输出load(Archive& ar)
会产生编译错误。
我觉得我用错了,还是不支持?
我最近遇到了同样的情况。我相信你不需要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();
}