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-cpp 编译错误:“未定义对 YAML::LoadFile 的引用”

未定义的参考链接 yaml-cpp 程序与 mingw-w64 + cmake

ECS任务定义App Mesh虚拟节点名称未通过控制台设置

YAML 未解析的外部符号 (yaml-cpp)

如何解决:无法读取节点 js 中未定义的属性“keycloak-token”?