yaml-cpp:创建一个未定义的节点
Posted
技术标签:
【中文标题】yaml-cpp:创建一个未定义的节点【英文标题】:yaml-cpp: create an undefined node 【发布时间】:2019-01-29 11:56:29 【问题描述】:在 yaml-cpp 中,如何创建一个在布尔上下文中评估为 false 的节点(这似乎相当于 !node.IsDefined()
)?
目前我正在使用
Node null = Node()["x"];
assert(!null);
适用于任何字符串 - 但这似乎是任意的,不是有意的。
【问题讨论】:
【参考方案1】:您的代码是正确的,原因是唯一返回未定义节点的是 operator[]
上的 const Node
,当密钥不存在时。或许写的更清楚如下,但这和你写的基本一样。
const Node node;
assert(!node["x"]);
【讨论】:
此答案因其长度和内容而被标记为低质量。你能解释一下为什么这段代码是问题的答案吗? OP 询问如何创建一个在布尔上下文中评估为 false 的节点。答案是一段简短的 sn-p 代码。答案的第一行解释了为什么他们的示例不起作用。 这与问题中的代码有何本质不同?const
关键字。因此我的答案的第一行:)
但是问题中的右值Node()
选择了相同的operator[] const
,所以它正是一些代码。【参考方案2】:
就这么简单
YAML::Node(YAML::NodeType::Undefined)
【讨论】:
以上是关于yaml-cpp:创建一个未定义的节点的主要内容,如果未能解决你的问题,请参考以下文章
yaml-cpp 编译错误:“未定义对 YAML::LoadFile 的引用”