Можно ли преобразовать boost::системный::код ошибки_в стандартный:код ошибки_?

Я хочу максимально заменить внешние библиотеки (такие как boost)их эквивалентами в стандартном C++, если они существуют и это возможно, чтобы минимизировать зависимости, поэтому мне интересно, существует ли безопасный способ конвертации boost::system::error_codeк std::error_code. Пример псевдокода:

void func(const std::error_code & err)
{
    if(err) {
        //error
    } else {
        //success
    }
}

boost::system::error_code boost_err = foo(); //foo() returns a boost::system::error_code
std::error_code std_err = magic_code_here; //convert boost_err to std::error_code here
func(std_err);

Самое главное, это не точно такая же ошибка, а просто настолько близкая к возможной и, наконец, ошибка это или нет. Есть умные решения?

Заранее спасибо!

17
задан Armen Tsirunyan 16 April 2012 в 14:53
поделиться