Error code with a value of 0 of the system_category (generally indicating no error).
initialization constructor (2)
Error code with a value of val of the category specified by cat.
construct from error code enum type (3)
Calls make_error_code to construct an error code.
This constructor only participates in overload resolution if is_error_code_enum<ErrorCodeEnum>::value is true.