error_code() noexcept;
Effects: Constructs an object of type
error_code. Postconditions: val_ == 0 and
cat_ == &system_category(). error_code(int val, const error_category& cat) noexcept;
Effects: Constructs an object of type
error_code. Postconditions: val_ == val and
cat_ == &cat. template <class ErrorCodeEnum>
error_code(ErrorCodeEnum e) noexcept;
Effects: Constructs an object of type
error_code. Postconditions: *this == make_error_code(e). Remarks: This constructor shall not participate in overload resolution unless
is_error_code_enum_v<ErrorCodeEnum> is
true.