yaml_ cpp: преобразование NULL в std :: vector <double> - PullRequest
0 голосов
/ 13 марта 2020

Я получил несколько файлов .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?

...