代码之家  ›  专栏  ›  技术社区  ›  Deepak Selvakumar

“<function style cast>”:无法从“cmdline”转换为“boost::system::system\u error”

  •  0
  • Deepak Selvakumar  · 技术社区  · 5 年前

    我的项目使用boost 1.58已经很久了。现在我已经将visualstudio版本升级到2017年。和boost版本1.68.0

    Boost 1.68.0的error_code类有一些更改,这会破坏我们的构建。

    获取以下错误

    Error   C2440   '<function-style-cast>': cannot convert from 'cmdline_error' to 'boost::system::system_error'
    

    其中cmdline_error定义如下

    enum cmdline_error
    {
       success = 0,
       missing_argument,
       argument_conversion_failed
    };
    

    这就是造成错误的声明

    cmdline_error cmdError;
    
    boost::system::system_error systemError = boost::system::system_error(cmdError);
    

    在linux构建中,发生以下错误

    error: no matching function for call to ‘boost::system::system_error::system_error(cmdline_error)’
    

    这段代码在boost 1.48,1.58下工作。1.62

    这里正确的处理这个错误的方法是什么?

    0 回复  |  直到 5 年前