c++ - 当值部分不存在时使用 Boost Property Tree 读取 INI 文件

标签 c++ boost boost-propertytree

我正在使用 Boost.PropertyTree 读取 INI 文件:

read_ini( "myIni.ini", pt );
string s=pt.get<std::string>("Section1.value1");

如果部分不包含 value1 记录,那么 Boost 会引发异常。

如果 Section1.value1 不存在,如何以优雅的方式读取 INI 文件并为 s 赋予默认值?

最佳答案

使用 Boost.Optional:

s = pt.get_optional<std::string>("Section1.value1").get_value_or("default");
//     ^^^^^^^^^^^^                                     ^^^^^^^^  ^^^^^^^

关于c++ - 当值部分不存在时使用 Boost Property Tree 读取 INI 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25760285/

相关文章:

c++ - 将工具提示添加到 ComboBoxEx 失败

c++ - 变体变量与非变体类型的交互

c++ - strcmpi 重命名为 _strcmpi?

c++ - 使用 std::bind 占位符和 boost 库的问题

c++ - Boost::spirit::karma:复制在 repeat 或 kleene star 中不起作用?

Boost:如何将子树添加到现有树中

c++ - 奇怪的构造模式

C++:用共享和弱指针替换原始指针

c++ - 如果路径包含西里尔字符,则 boost::property_tree::json_parser::read_json 无法读取文件

c++ - 使用 boost::property_tree 枚举从 xml 到 c++ 程序的输入