使用boost :: property_tree :: ptree将注释写入ini文件

时间:2014-12-08 09:21:10

标签: c++ boost ini

有没有办法使用boost :: property :: ptree?

在ini文件中写注释

类似的东西:

  void save_ini(const std::string& path)
  {
      boost::property_tree::ptree pt;
      int first_value = 1;
      int second_value = 2;

      // Write a comment to describe what the first_value is here
      pt.put("something.first_value", );
      // Write a second comment here
      pt.put("something.second_value", second_value);

      boost::property_tree::write_ini(path, pt);
  }

文档here没有提供信息。提升实施了吗?

提前致谢

1 个答案:

答案 0 :(得分:5)

boost :: property_tree :: ptree用于各种"属性树"类型(INFO,INI,XML,JSON等),因此除了作为允许key =>值设置的花哨容器之外,它本身不支持任何其他内容。你的最后一行(应该是):

boost::property_tree::ini_parser::write_ini(path, pt);

是唯一定义您作为INI而不是其他格式之一的内容。例如,您可以通过写入XML轻松替换该行,它也可以工作。因此,您可以看到property_tree :: ptree不能具有特定类型文件的特定内容。


你能做的最好的事情就是添加一个"评论"为每个孩子设置一个类似的东西:

pt.put("something.comments", "Here are the comments for the 'something' section");

您可以为任何具有您想要名称的孩子提供属性...并且在阅读期间迭代时忽略它们。所以,如果你愿意的话,没有理由不像这样有创意 - 这是你的计划!