std::error_code::error_code
Материал из cppreference.com
<tbody>
</tbody>
error_code() noexcept; |
(1) | (начиная с C++11) |
error_code( int ec, const error_category& ecat ) noexcept; |
(2) | (начиная с C++11) |
template< class ErrorCodeEnum > error_code( ErrorCodeEnum e ) noexcept; |
(3) | (начиная с C++11) |
error_code( const error_code& other ) = default; |
(4) | (начиная с C++11) (объявлено неявно) |
error_code( error_code&& other ) = default; |
(5) | (начиная с C++11) (объявлено неявно) |
Создаёт новый код ошибки.
1) Создаёт код ошибки со значением по умолчанию. Эквивалентно
error_code(0, std::system_category()).2) Создаёт код ошибки, используя
ec в качестве кода ошибки, зависящего от платформы, и ecat в качестве соответствующей категории ошибок.3) Создаёт код ошибки из перечисления кодов ошибок
e. Эквивалентно make_error_code(e), где make_error_code находится только поиском, зависящим от аргумента. Эта перегрузка участвует в разрешении перегрузки, только если std::is_error_code_enum<ErrorCodeEnum>::value равно true.4,5) Неявно определённый конструктор копирования и конструктор перемещения. Инициализирует код ошибки содержимым
other.Параметры
| other | — | другой код ошибки для инициализации |
| ec | — | код ошибки, зависящий от платформы |
| ecat | — | категория ошибки, соответствующая ec
|
| e | — | перечисление кодов ошибок |
Отчёты о дефектах
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
| Номер | Применён | Поведение в стандарте | Корректное поведение |
|---|---|---|---|
| LWG 3629 | C++11 | использовались только перегрузки std::make_error_code
|
используются перегрузки, найденные через ADL |
Смотрите также
(C++11) |
создаёт код ошибки std::errc (функция) |
| создаёт код ошибки iostream (функция) | |
| создаёт будущий код ошибки (функция) |