C++ yaml_cpp:将空值转换为标准::向量<;双倍>;

C++ yaml_cpp:将空值转换为标准::向量<;双倍>;,c++,yaml,yaml-cpp,C++,Yaml,Yaml Cpp,我得到一些.yaml文件,这些文件在列表中有一些空值,例如: Src_1: A_Coeff: ~ B_Coeff: - -0.0007726139317399502 Source_Direction: - -0.3588391810596386 - -0.8148504694940865 - 0.4552506504092068 Source_Position: - 0.002637567823932

我得到一些.yaml文件,这些文件在列表中有一些空值,例如:

  Src_1:
    A_Coeff: ~
    B_Coeff:
      - -0.0007726139317399502
    Source_Direction:
      - -0.3588391810596386
      - -0.8148504694940865
      - 0.4552506504092068
    Source_Position:
      - 0.002637567823932366
      - 0.3725416725539
      - 0.09719412496423192
将_系数转换为本机std::vector的代码如下所示:

YAML::Node systemDefinition = YAML::LoadFile(fileName);
std::vector<double> coeff = systemDefinition[srcTag]["A_Coeff"].as< std::vector<double> >();
YAML::Node systemDefinition=YAML::LoadFile(文件名);
std::vector coeff=systemDefinition[srcTag][“A_coeff”]。如();
他们从源代码处使用了yaml cpp的0.5.3版。我尝试从源代码使用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
terminate在抛出'YAML::TypedBadConversion'what():YAML cpp:第144行第14列错误转换的实例后调用
显然,空值不能转换为向量。我找不到关于NULL解析的很多信息,除了以下信息:。但在那里,他们似乎对瓷砖没有问题


因此,我想知道:这种从NULL到本机数据类型的转换有效吗?它应该如何工作?NULL的解析方式有变化吗?

我认为你是对的,它是0.5.2(),应该能够在这些版本之间平分git的变化。似乎在0.5.2和0.5.3之间已经有了一些差异。从2015年开始。。。我会说,从github克隆并编译它。它在2分钟内完成,真的。快速扫描了修订历史,没有任何东西对我来说很突出,但如果你只是查看源代码,构建,测试,提前一年左右,构建,测试,向后跳六个月,构建,测试,你应该很快找到导致它的更改。然后,该更改的提交消息可能会提供更多信息,或者至少您有了一个起点。所有这些都应该只需要几分钟,除非构建需要时间。它构建得非常快:)
time(cmake..;make-j)
(包括构建测试)=59秒。