如何在yaml-cpp中指定Null节点的输出格式?

时间:2013-12-12 12:54:44

标签: yaml-cpp

我使用当前(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:

~
*/

1 个答案:

答案 0 :(得分:1)

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