YAML
name:
не имеет строкового значения для ключа name
; на самом деле это нулевое значение. Смотрите, например, онлайн-парсер здесь ; каноническое представление YAML выглядит так:
!!map {
? !!str "name"
: !!null "null",
}
yaml- cpp пытается убедиться, что то, что вы сказали («напишите эту пустую строку»), является способом анализа полученного YAML, поэтому он записывает пустая строка как ""
.
Если вы хотите записать нулевое значение, то либо не пишите значение, либо пишите YAML::Null
. Последний (я полагаю) произведет
name: ~
, который является канонической формой нуля.