问题标签 [boost-propertytree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4268 浏览

boost-propertytree - boost property_tree::empty_ptree 在哪里?

我正在使用靴子的 property_tree 库。我正在寻找一种从对象中获取子节点的方法,但如果失败则ptree返回空。ptree我在 property_tree/examples/empty_ptree_trick.cpp 中遇到了一个很好的例子:

这正是我需要的。问题是编译器抱怨empty_ptree()函数不是boost:property_tree. 任何想法在哪里empty_ptree()

我在 VS2010 上使用 boost 1.44。

0 投票
1 回答
2165 浏览

json - 如何创建空数组?

可以从 boost::property_tree::json_parser::write_json 获得以下输出

我知道如何用一些项目创建数组,但是当我尝试创建空数组时,我得到了 "params": ""

0 投票
3 回答
11357 浏览

c++ - 如何为 Boost.PropertyTree 提供字符串而不是文件?

Boost 有一个关于如何从文件加载 XML 的教程。如何使用我在代码中创建或从用户接收的字符串(例如使用cin)来提供它?

0 投票
5 回答
16097 浏览

loops - boost :只需遍历 ptree 的元素

这应该很简单(我只是在学习提升,所以我错过了一些东西)

我已经使用 json_read 阅读了一些简单的 JSON,现在有了一个 ptree。网络上的所有示例都显示使用 ptree.get("entry_name") 获取条目。我想做的就是:

即遍历 ptree 并写出每个名称(即您放入 pt.get() 的内容)及其对应的值。

对不起,如果这很简单

罗斯

0 投票
2 回答
1745 浏览

json - 从 JSON 数据提升访问浮点数组

我通过 boost 收集了一些 JSON 数据,但我不知道如何访问数组中的一些数据:

JSON数据:{“dvm_gnd”:{“num”:4,“value”:[1,2,3,4]},“xx_gn”:{“num:1,“value”:5}}

我可以使用以下方法轻松获取“num”和单个“value”(5):

但是我不知道如何访问数组的元素?ptree.get() 返回什么?

谢谢

罗斯

0 投票
2 回答
796 浏览

c++ - 模块属性名称-值对 C++ API 框架 - 重新发明?

我经常遇到允许用户获取和设置控制模块操作的各种参数的 API。我现在发现自己正在考虑编写另一个属性 API,但不想重新发明轮子。

以下是典型的基本客户端代码:

通常可以设置数十个参数,并且此类属性集通常在不断开发中。

一些 API 比其他 API 更智能,更高级的功能包括:

  • 属性的分层分组
  • 属性枚举
  • 具有强制最小值和最大值的数值参数
  • 默认参数值
  • 启用、禁用或只读的设置
  • 动态参数 - 根据其他参数的状态出现、消失、设置最小值/最大值、启用、禁用或只读的设置。
  • 通过 UUID 键而不是文本名称访问的属性

除了上面示例代码中的 C 风格访问器之外,我还遇到了可以:

  • 读取/写入文件的属性(例如 XML)
  • 读/写设置到 Windows 注册表
  • 与系统属性 API 接口,例如IPersistPropertyBag
  • 具有默认的哑 GUI 实现,例如树视图或列表
  • 具有适合最小值/最大值/启用状态的 GUI 扩展,以减少 GUI 代码中的重复。

我很想找到一个设计良好的公共图书馆,它为上述所有内容提供框架,但到目前为止还一片空白。我知道Boost.PropertyTree但它只是一个骨架。还有其他我应该注意的可移植属性 API 框架吗?

0 投票
1 回答
290 浏览

c++ - 围绕 boost::ptree 头痛的模板类

我正在努力找出为什么带有以下代码段的代码无法编译。关于类模板可能有些我不理解的地方(即 typedef typename 的东西),但我不认为在这种特殊情况下就是这样。

我使用了完全相同的设置,尽管在模板类之外(但仍然使用与上面显示的完全相同的行)。编译器(GCC/MingW)错误是

'>'令牌之前的预期主表达式

如果我在该行替换Tint或其他内容,它仍然无法编译(“预期的主表达式之前int”)。

有什么想法吗?Boost::ptree 文档位于http://www.boost.org/doc/libs/release/boost/property_tree/ptree.hpp

0 投票
3 回答
4367 浏览

c++ - c++:程序设置 - boost.PropertyTree 或 boost.program_options?

我正在寻找一种在 C++ 中存储程序设置或选项或配置的解决方案。这些可能是在 GUI 中公开的设置,需要在我的代码运行之间保存。

在我的搜索中,我遇到了boost.PropertyTree,这似乎是一个不错的选择。我知道 boost 是受人尊敬的代码,所以我很喜欢使用它,所以我开始使用它进行开发。然后我遇到了boost.program_options,它似乎允许你做同样的事情,但对于程序设置的特定用例来说看起来更专业。

现在我想知道哪个最适合这份工作?(或者是否有比两者都好的第三种选择)

编辑: 仅供参考,这是一个插件,因此它不会使用命令行选项(如,它甚至不可能)。

更新

我最终坚持使用 boost.PropertyTree。我需要能够将更改的选项保存回 INI,但我没有看到使用 boost.program_options 的方法。

0 投票
3 回答
1793 浏览

c++ - 如何转发声明 boost::ptree::iterator

我想在我的项目中使用 boost ptree,但由于 ptree.hpp 导致包含大约另外 1000 个头文件,这会大大增加编译时间(例如从 1 秒到 7 秒),并且因为它需要在 20 多个不同的 cpp 文件中,所以这不是可接受的(预编译的头文件并没有太大的改进)。所以我正在考虑将 boost ptree 封装在我自己的类中,比如

但是,我未能以一种很好的方式实现迭代器。理想情况下,我希望将 a作为私有成员变量,然后可以使用我自己的成员函数boost::property_tree::ptree::iterator对其进行迭代,但正如我从如何转发声明内部类中了解的那样?这通常是不可能的。在此类中实现迭代器的任何优雅方法?m_tree

0 投票
0 回答
2169 浏览

c++ - 使用 Boost 属性树迭代 XML 文件中的变量

任何人都可以帮助我使用 boost 属性树迭代我拥有的 XML 文件中的变量吗?

到目前为止,这是我的代码 [它不会超过 XML 中的第一个变量]