# std::error_code::error_code

< cpp‎ | error‎ | error code

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 。

1) 构造带默认值的 error_code 。等价于 error_code(0, std::system_category()) 。
2) 以 `ec` 为平台依赖的错误码并以 `ecat` 为对应的错误类别构造 error_code 。
3) 从错误码枚举 `e` 构造 error_code 。等价于 make_error_code(e) ，其中 `make_error_code` 由实参依赖查找找到。此重载仅若std::is_error_code_enum<ErrorCodeEnum>::value 为 true 才参与重载决议。

### 参数

ec | - | 用以构造的平台依赖的错误码
ecat | - | 对应 `ec` 的 error_category
e | - | 用以构造的错误码枚举

### 注解

最初的提案 N2422 中有意使用 ADL 所找到的 `make_error_code` ，并且已知实现均使用它。然而，标准要求只考虑 `std::make_error_code` 重载。此为 LWG 问题 3629 。

### 参阅

make_error_code(std::errc) (C++11) | 构造 std::errc 错误码 (函数)
make_error_code(std::io_errc) (C++11) | 构造一个 iostream 错误码 (函数)
make_error_code(std::future_errc) (C++11) | 构造一个 future error_code (函数)