0

我的项目多年来一直在使用 boost 1.58。现在我已经将 Visual Studio 版本升级到 2017 年。并且提升版本 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 build中,出现如下错误

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

此代码适用于 boost 1.48、1.58。1.62

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

4

0 回答 0