19
Diagnostics library
[diagnostics]
19.5
System error support
[syserr]
19.5.2
Header
<system_
error>
synopsis
[system.error.syn]
🔗
#include
<
compare
>
/ see
[compare.
syn]
namespace
std
{
class
error_category;
const
error_category
&
generic_category
(
)
noexcept
;
const
error_category
&
system_category
(
)
noexcept
;
class
error_code;
class
error_condition;
class
system_error;
template
<
class
T
>
struct
is_error_code_enum
:
public
false_type
{
}
;
template
<
class
T
>
struct
is_error_condition_enum
:
public
false_type
{
}
;
enum
class
errc
{
/ freestanding
address_family_not_supported,
/
EAFNOSUPPORT
address_in_use,
/
EADDRINUSE
address_not_available,
/
EADDRNOTAVAIL
already_connected,
/
EISCONN
argument_list_too_long,
/
E2BIG
argument_out_of_domain,
/
EDOM
bad_address,
/
EFAULT
bad_file_descriptor,
/
EBADF
bad_message,
/
EBADMSG
broken_pipe,
/
EPIPE
connection_aborted,
/
ECONNABORTED
connection_already_in_progress,
/
EALREADY
connection_refused,
/
ECONNREFUSED
connection_reset,
/
ECONNRESET
cross_device_link,
/
EXDEV
destination_address_required,
/
EDESTADDRREQ
device_or_resource_busy,
/
EBUSY
directory_not_empty,
/
ENOTEMPTY
executable_format_error,
/
ENOEXEC
file_exists,
/
EEXIST
file_too_large,
/
EFBIG
filename_too_long,
/
ENAMETOOLONG
function_not_supported,
/
ENOSYS
host_unreachable,
/
EHOSTUNREACH
identifier_removed,
/
EIDRM
illegal_byte_sequence,
/
EILSEQ
inappropriate_io_control_operation,
/
ENOTTY
interrupted,
/
EINTR
invalid_argument,
/
EINVAL
invalid_seek,
/
ESPIPE
io_error,
/
EIO
is_a_directory,
/
EISDIR
message_size,
/
EMSGSIZE
network_down,
/
ENETDOWN
network_reset,
/
ENETRESET
network_unreachable,
/
ENETUNREACH
no_buffer_space,
/
ENOBUFS
no_child_process,
/
ECHILD
no_link,
/
ENOLINK
no_lock_available,
/
ENOLCK
no_message,
/
ENOMSG
no_protocol_option,
/
ENOPROTOOPT
no_space_on_device,
/
ENOSPC
no_such_device_or_address,
/
ENXIO
no_such_device,
/
ENODEV
no_such_file_or_directory,
/
ENOENT
no_such_process,
/
ESRCH
not_a_directory,
/
ENOTDIR
not_a_socket,
/
ENOTSOCK
not_connected,
/
ENOTCONN
not_enough_memory,
/
ENOMEM
not_supported,
/
ENOTSUP
operation_canceled,
/
ECANCELED
operation_in_progress,
/
EINPROGRESS
operation_not_permitted,
/
EPERM
operation_not_supported,
/
EOPNOTSUPP
operation_would_block,
/
EWOULDBLOCK
owner_dead,
/
EOWNERDEAD
permission_denied,
/
EACCES
protocol_error,
/
EPROTO
protocol_not_supported,
/
EPROTONOSUPPORT
read_only_file_system,
/
EROFS
resource_deadlock_would_occur,
/
EDEADLK
resource_unavailable_try_again,
/
EAGAIN
result_out_of_range,
/
ERANGE
state_not_recoverable,
/
ENOTRECOVERABLE
text_file_busy,
/
ETXTBSY
timed_out,
/
ETIMEDOUT
too_many_files_open_in_system,
/
ENFILE
too_many_files_open,
/
EMFILE
too_many_links,
/
EMLINK
too_many_symbolic_link_levels,
/
ELOOP
value_too_large,
/
EOVERFLOW
wrong_protocol_type,
/
EPROTOTYPE
}
;
template
<
>
struct
is_error_condition_enum
<
errc
>
:
true_type
{
}
;
/
[syserr.
errcode.
nonmembers]
, non-member functions
error_code make_error_code
(
errc e
)
noexcept
;
template
<
class
charT,
class
traits
>
basic_ostream
<
charT, traits
>
&
operator
<
(
basic_ostream
<
charT, traits
>
&
os,
const
error_code
&
ec
)
;
/
[syserr.
errcondition.
nonmembers]
, non-member functions
error_condition make_error_condition
(
errc e
)
noexcept
;
/
[syserr.
compare]
, comparison operator functions
bool
operator
=
(
const
error_code
&
lhs,
const
error_code
&
rhs
)
noexcept
;
bool
operator
=
(
const
error_code
&
lhs,
const
error_condition
&
rhs
)
noexcept
;
bool
operator
=
(
const
error_condition
&
lhs,
const
error_condition
&
rhs
)
noexcept
; strong_ordering
operator
<
=
>
(
const
error_code
&
lhs,
const
error_code
&
rhs
)
noexcept
; strong_ordering
operator
<
=
>
(
const
error_condition
&
lhs,
const
error_condition
&
rhs
)
noexcept
;
/
[syserr.
hash]
, hash support
template
<
class
T
>
struct
hash;
template
<
>
struct
hash
<
error_code
>
;
template
<
>
struct
hash
<
error_condition
>
;
/
[syserr]
, system error support
template
<
class
T
>
constexpr
bool
is_error_code_enum_v
=
is_
error_
code_
enum
<
T
>
::
value;
template
<
class
T
>
constexpr
bool
is_error_condition_enum_v
=
is_
error_
condition_
enum
<
T
>
::
value;
}
1
#
The value of each
enum
errc
enumerator is the same as the value of the
<cerrno>
macro shown in the above synopsis
.
Whether or not the
<system_
error>
implementation exposes the
<cerrno>
macros is unspecified
.
2
#
The
is_
error_
code_
enum
and
is_
error_
condition_
enum
templates may be specialized for program-defined types to indicate that such types are eligible for
class
error_
code
and
class
error_
condition
implicit conversions, respectively
.