Я получил несколько файлов .yaml, которые имеют некоторые значения NULL в списках, например:
Src_1:
A_Coeff: ~
B_Coeff:
- -0.0007726139317399502
Source_Direction:
- -0.3588391810596386
- -0.8148504694940865
- 0.4552506504092068
Source_Position:
- 0.002637567823932366
- 0.3725416725539
- 0.09719412496423192
Преобразование A_Coeff в собственный std :: vector было сделано следующим образом в коде, который я имею:
YAML::Node systemDefinition = YAML::LoadFile(fileName);
std::vector<double> coeff = systemDefinition[srcTag]["A_Coeff"].as< std::vector<double> >();
Они использовали версию 0.5.3 yaml- cpp из источника. Я пытался использовать 0.5.9 из источника. Если я читаю код так же, как и раньше, я получаю сообщение об ошибке:
terminate called after throwing an instance of 'YAML::TypedBadConversion<std::vector<double, std::allocator<double> > >' what(): yaml-cpp: error at line 144, column 14: bad conversion
Очевидно, что NULL не может быть преобразован в вектор. Я не нахожу много информации о разборе NULL, кроме этой: https://github.com/jbeder/yaml-cpp/issues/590. Но там у них, похоже, нет проблем с тильдой.
Поэтому мне интересно: допустимо ли это преобразование из NULL в собственный тип данных и как оно должно работать? Было ли изменение в том, как анализируется NULL?