问题标签 [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.
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。
json - 如何创建空数组?
可以从 boost::property_tree::json_parser::write_json 获得以下输出
我知道如何用一些项目创建数组,但是当我尝试创建空数组时,我得到了 "params": ""
c++ - 如何为 Boost.PropertyTree 提供字符串而不是文件?
Boost 有一个关于如何从文件加载 XML 的教程。如何使用我在代码中创建或从用户接收的字符串(例如使用cin
)来提供它?
loops - boost :只需遍历 ptree 的元素
这应该很简单(我只是在学习提升,所以我错过了一些东西)
我已经使用 json_read 阅读了一些简单的 JSON,现在有了一个 ptree。网络上的所有示例都显示使用 ptree.get("entry_name") 获取条目。我想做的就是:
即遍历 ptree 并写出每个名称(即您放入 pt.get() 的内容)及其对应的值。
对不起,如果这很简单
罗斯
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() 返回什么?
谢谢
罗斯
c++ - 模块属性名称-值对 C++ API 框架 - 重新发明?
我经常遇到允许用户获取和设置控制模块操作的各种参数的 API。我现在发现自己正在考虑编写另一个属性 API,但不想重新发明轮子。
以下是典型的基本客户端代码:
通常可以设置数十个参数,并且此类属性集通常在不断开发中。
一些 API 比其他 API 更智能,更高级的功能包括:
- 属性的分层分组
- 属性枚举
- 具有强制最小值和最大值的数值参数
- 默认参数值
- 启用、禁用或只读的设置
- 动态参数 - 根据其他参数的状态出现、消失、设置最小值/最大值、启用、禁用或只读的设置。
- 通过 UUID 键而不是文本名称访问的属性
除了上面示例代码中的 C 风格访问器之外,我还遇到了可以:
- 读取/写入文件的属性(例如 XML)
- 读/写设置到 Windows 注册表
- 与系统属性 API 接口,例如
IPersistPropertyBag
- 具有默认的哑 GUI 实现,例如树视图或列表
- 具有适合最小值/最大值/启用状态的 GUI 扩展,以减少 GUI 代码中的重复。
我很想找到一个设计良好的公共图书馆,它为上述所有内容提供框架,但到目前为止还一片空白。我知道Boost.PropertyTree但它只是一个骨架。还有其他我应该注意的可移植属性 API 框架吗?
c++ - 围绕 boost::ptree 头痛的模板类
我正在努力找出为什么带有以下代码段的代码无法编译。关于类模板可能有些我不理解的地方(即 typedef typename 的东西),但我不认为在这种特殊情况下就是这样。
我使用了完全相同的设置,尽管在模板类之外(但仍然使用与上面显示的完全相同的行)。编译器(GCC/MingW)错误是
'>'
令牌之前的预期主表达式
如果我在该行替换T
为int
或其他内容,它仍然无法编译(“预期的主表达式之前int
”)。
有什么想法吗?Boost::ptree 文档位于http://www.boost.org/doc/libs/release/boost/property_tree/ptree.hpp
c++ - c++:程序设置 - boost.PropertyTree 或 boost.program_options?
我正在寻找一种在 C++ 中存储程序设置或选项或配置的解决方案。这些可能是在 GUI 中公开的设置,需要在我的代码运行之间保存。
在我的搜索中,我遇到了boost.PropertyTree,这似乎是一个不错的选择。我知道 boost 是受人尊敬的代码,所以我很喜欢使用它,所以我开始使用它进行开发。然后我遇到了boost.program_options,它似乎允许你做同样的事情,但对于程序设置的特定用例来说看起来更专业。
现在我想知道哪个最适合这份工作?(或者是否有比两者都好的第三种选择)
编辑: 仅供参考,这是一个插件,因此它不会使用命令行选项(如,它甚至不可能)。
更新
我最终坚持使用 boost.PropertyTree。我需要能够将更改的选项保存回 INI,但我没有看到使用 boost.program_options 的方法。
c++ - 如何转发声明 boost::ptree::iterator
我想在我的项目中使用 boost ptree,但由于 ptree.hpp 导致包含大约另外 1000 个头文件,这会大大增加编译时间(例如从 1 秒到 7 秒),并且因为它需要在 20 多个不同的 cpp 文件中,所以这不是可接受的(预编译的头文件并没有太大的改进)。所以我正在考虑将 boost ptree 封装在我自己的类中,比如
但是,我未能以一种很好的方式实现迭代器。理想情况下,我希望将 a作为私有成员变量,然后可以使用我自己的成员函数boost::property_tree::ptree::iterator
对其进行迭代,但正如我从如何转发声明内部类中了解的那样?这通常是不可能的。在此类中实现迭代器的任何优雅方法?m_tree
c++ - 使用 Boost 属性树迭代 XML 文件中的变量
任何人都可以帮助我使用 boost 属性树迭代我拥有的 XML 文件中的变量吗?
到目前为止,这是我的代码 [它不会超过 XML 中的第一个变量]