'': невозможно преобразовать из' cmdline_error 'в' boost :: system :: system_error ' - PullRequest
0 голосов
/ 04 марта 2019

Мой проект использовал повышение 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 возникает следующая ошибка

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

Этот код работал с бустом 1.48, 1.58.1.62

Как правильно исправить эту ошибку здесь?

...