Как указать формат вывода для нулевого узла в yaml-cpp?

Я использую текущую (12.12.2013) последнюю версию yaml-cpp.

Я заметил, что и YAML::Load(""), и YAML::Load("---\n...") приводят к нулевому узлу, то есть 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:

~
*/

person Yuki Inoue    schedule 12.12.2013    source источник
comment
Сейчас это невозможно сделать в yaml-cpp. Не могли бы вы отправить отчет об ошибке на странице проекта?   -  person Jesse Beder    schedule 12.12.2013
comment
@JesseBeder Я зарегистрировал вопрос 230.   -  person Yuki Inoue    schedule 14.12.2013


Ответы (1)


Согласно ошибке Github, это поведение было исправлено в 2016 году.

person Yuki Inoue    schedule 03.09.2020