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中。
答案 0 :(得分:0)
这意味着您无法使用此机制,因为该库已经使用了自定义点。
您可能不需要这个
看起来阅读方已经支持旧格式了。所以,你应该好好阅读旧的格式。
您可以使用强大的typedef(或类似Bool { my_false_rep, my_true_rep }
的自定义枚举),可以使用自定义点而不会发生冲突。