3

我使用当前(2013/12/12)最新版本的 yaml-cpp。

我注意到两者YAML::Load("") 和都会YAML::Load("---\n...")导致 Null 节点,即YAML::Load("").Type() == YAML::NodeType::Null 当发送到std::ostream前者时输出一个空字符串,但后者输出波浪号(~)。

我希望两个节点都输出一个空字符串。我怎样才能实现它?

我想这样做是因为我注意到波浪号在我使用YAML::Load.

这是显示这种差异的代码。

#include <yaml-cpp/yaml.h>
#include <iostream>
#include <cassert>

int main() {
    YAML::Node node1 = YAML::Load("");
    YAML::Node node2 = YAML::Load("---\n...");

    assert (node1.Type() == YAML::NodeType::Null);
    assert (node2.Type() == YAML::NodeType::Null);

    std::cout << node1 << std::endl;
    std::cout << node2 << std::endl;
}

/* OUTPUT:

~
*/
4

1 回答 1

1

根据Github Issue,此行为已在 2016 年修复。

于 2020-09-03T08:01:54.023 回答