yaml-cpp:创建未定义的节点

时间:2019-01-29 11:56:30

标签: c++ yaml-cpp

在yaml-cpp中,如何创建一个在布尔上下文(似乎等同于!node.IsDefined())中评估为false的节点?

当前我正在使用

Node null = Node()["x"];
assert(!null);

适用于任何字符串-但这似乎是任意的,并非故意的。

2 个答案:

答案 0 :(得分:0)

您的代码是正确的,原因是当密钥不存在时,唯一返回未定义节点的是operator[]上的const Node。也许更清楚地写成如下,但这与您写的基本上相同。

const Node node;
assert(!node["x"]);

答案 1 :(得分:0)

就这么简单

YAML::Node(YAML::NodeType::Undefined)