我正在开发一个程序来记录程序中变量的信息。我想按文件分组这些信息 - >功能 - >变量
boost :: property_tree似乎非常适合这个,因为我可以将Access对象存储在树(file.function.variable
)中的路径上,然后轻松地将树转换为XML,JSON等。
假设我正在记录变量的使用次数。我可以有一个Access类来跟踪对变量的写入和读取次数。然后,我可以将此对象存储在树中的file.function.variable中。每次访问变量时,我都可以在树中找到变量并更新有关它的信息。
但是,我无法弄清楚如何在树中存储一个类。我假设有一些我需要实现或子类,但文档没有解决我正在尝试做的事情。
我的问题有解决方案吗?是否有更好的替代boost :: property_tree?
谢谢。
答案 0 :(得分:0)
boost::property_tree
旨在保存文本数据。这就是它适合导出到XML,JSON等的原因。
修改您的类Access
,使其包含转换为/从文本转换的方法,并将该文本存储在树中。
答案 1 :(得分:0)
你可以放弃树的想法,只需坚持一个关键值对的平面图。
示例:
std::map<std::string, Access> accesses;
// add one access
accesses["file.function.variable"] += 1;
您只需编写一个从其内容生成JSON的例程,这应该很简单。 (假设密钥的第一部分始终是文件,第二部分始终是函数,第三部分始终是变量。)