是否可以在没有异常支持的情况下使用 yaml-cpp?
目前,我使用yaml-cpp-0.8.0。当我尝试编译使用 yaml-cpp 的程序时,出现以下错误:
external/yaml-cpp~override/src/scanscalar.cpp:52:11: error: cannot use 'throw' with exceptions disabled
52 | throw ParserException(INPUT.mark(), ErrorMsg::DOC_IN_SCALAR);
| ^
因为,我出于性能原因禁用了异常,我想知道是否有一个标志/定义允许我在没有异常支持的情况下使用 yaml-cpp。
不,异常被硬编码到 yaml-cpp 库中,因此没有选项可以关闭它们。
您所询问的特定函数的来源如下所示:
...并且没有
#ifdef
s 或其他任何东西可以禁用异常的使用。在更基础的层面上,库中最核心的类之一, ,
Yaml::Node
甚至没有移动语义,我在Make move constructor and赋值运算符 noexcept #809noexcept
中提出了一个问题并尝试修复,但我没有无法提交该提交。问题是否可以禁用异常?第930章也提出来了