【问题标题】:Getting an error at line 0, column 0: bad conversion在第 0 行第 0 列出现错误:转换错误
【发布时间】:2020-04-01 17:56:39
【问题描述】:

我不知道为什么会出现这个错误:

terminate called after throwing an instance of 'YAML::TypedBadConversion<double>'
what():  yaml-cpp: error at line 0, column 0: bad conversion
Aborted (core dumped)

我将我的 constant.yaml 文件缩减为: MAX_FINGER_APERTURE: 0.120 我的代码如下:

//Path to the constants yaml file
std::string pkg_path = ros::package::getPath("frasier_motion");
std::string constants_path = pkg_path + "/config/constant.yaml";
YAML::Node constants = YAML::LoadFile(constants_path);

double MAX_FINGER_APERTURE = constants["MAX_FINGER_APERTURE"].as<double>();

你知道这是从哪里来的吗?

【问题讨论】:

  • 你的调试器说什么?
  • 特别是,考虑将YAML::Node 转储到标准输出,这样您就可以确保它以您期望的方式进行解析。
  • 错误来自程序没有找到正确的路径。将yaml文件解析为我的类的公共成员并直接检索常量变量解决了问题。

标签: c++ yaml-cpp


【解决方案1】:

错误来自程序未找到正确路径的事实。我在我的类中解析文件,然后在方法中检索常量变量,所以我认为 yaml 节点或 yaml 路径之间的链接在我的方法中被破坏了。将yaml文件解析为我的类的公共成员并直接检索常量变量解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 2014-04-15
    • 1970-01-01
    • 2019-12-04
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多