检查路径是否存在于 boost 属性 树中

Checking if a path exists in a boost property tree

如何检查 属性 树中是否存在路径?

示例:

boost::property_tree::ptree tree;

// if path doesn't exist, put value
if (/*...*/)
{
    tree.put("my.path.to.thing", true);
}

对于简单的解决方案,您可以使用get_optional()

根据文档,如果它存在,它 returns 值否则它 returns 一个未初始化的 optional

例子

boost::property_tree::ptree tree;

// if path doesn't exist, put value
if (!tree.get_optional<bool>("my.path.to.thing").is_initialized())
{
    tree.put("my.path.to.thing", true);
}