提升属性树值(de-)序列化

时间:2016-03-30 22:12:17

标签: c++ boost boost-propertytree

TL;博士 有没有办法覆盖boost.property_tree序列化bool(其他内置)值的方式?

我准备用boost.property_tree替换自编的键值存储。因此在第一次运行中我改变了实现以使用boost.property_tree但现在我正在使用墙,因为旧的实现使用整数0/1来表示bool值而property_tree使用true / false。

因此,在序列化ptree时,我会在文件中获得true / false字符串。这使得生成的文件与我们软件的旧版本不向后兼容,这是我目前不愿意走的路径。

我找到了一个旧的帖子boost property tree put/get DBL_MAX,它改变了写入/读取双值的方法,但是当我为bool尝试相同的时候,我得到一个编译器错误,结构已经定义了(这是正确的,因为它在ptree_translator.hpp中。

1 个答案:

答案 0 :(得分:0)

这意味着您无法使用此机制,因为该库已经使用了自定义点。

  • 您可能不需要这个

    看起来阅读方已经支持旧格式了。所以,你应该好好阅读旧的格式。

  • 您可以使用强大的typedef(或类似Bool { my_false_rep, my_true_rep }的自定义枚举),可以使用自定义点而不会发生冲突。