c++ - Boost C++ 属性 - 如果键不存在则设置为 false

标签 c++ boost boost-propertytree

我是使用属性树通过 boost 解析 json 的新手。

如果我有这个散列:

foo = {'test1',true}

ptree pt;
bool v = pt.get<bool>("test2");

我需要检查一个 key 是否存在,如果不存在则将其设置为 false。

我该如何优雅地做到这一点?

谢谢

最佳答案

  // bool optional
  boost::optional<bool> v = pt.get_optional<bool>("test2");

  // any type actually
  boost::optional<std::string> v2 = pt.get_optional<std::string>("test3");

  if (v) // key exists
    bool bool_value = v.get();
  else // not exists
    v.set(false);

关于c++ - Boost C++ 属性 - 如果键不存在则设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017873/

相关文章:

c++ - 项目级c++异常处理策略

boost - const shared_ptr到shared_ptr

c++ - 如果键名带有点(.),则在 C++ 中使用 ptree 从 json 中获取值

c++ - 有没有一种方便的方法可以从属性树中删除节点,同时保留其子节点?

c++ - 如何手动创建具有不同 XML 属性的 boost ptree?

java - 这些位如何在 C++ 中存储,如何在 Java 中表示类似的功能

c++ - C3867 传输 vector 值

c++ - 在 C++14 中不指定对象的左值

c++ - "Ends_with"读取输入文件时函数不工作

c++ - 在类 : scoped_ptr or shared_ptr? 中将智能指针作为参数传递