The class error_category defines the base class for types used
to identify the source and encoding of a particular category of error code.

[Note: Classes may be derived from error_category
to support additional categories of errors. --end note]

The class error_category serves as a base class for types used
to identify the source and encoding of a particular category of error code.
Classes may be derived from error_category to support categories of
errors in addition to those defined in the Boost System library. Such classes
shall behave as specified in this subclause. [ Note:error_category
objects are passed by reference, and two such objects are equal if they have the
same address. This means that applications using custom error_category
types should create a single object of each such type. —end note ]

The class error_code describes an object used to hold error code
values, such as those originating from the operating
system or other low-level application program interfaces. [ Note: Class
error_code is an adjunct to error reporting by
exception. —end note ]

Returns: if value() != value_type(), returns a value that will evaluate
true in a boolean context; otherwise, returns a value that will
evaluate false in a boolean context. The value type returned shall
not be convertible to int.

Throws: nothing.

[Note: This conversion can be used in contexts where a bool
is expected ( e.g., an if condition ); however, implicit conversions
( e.g., to int) that can occur with bool are not
allowed, eliminating some sources of user error. One possible implementation
choice for this type is pointer-to-member. --end note ]

Returns: If value() != 0, returns a value that will
evaluate true in a boolean context; otherwise, returns a value
that will evaluate false. The return type shall not be
convertible to int.

Throws: Nothing.

[ Note: This conversion can be used in contexts where a bool
is expected ( e.g., an if condition ); however, implicit conversions ( e.g., to
int) that can occur with bool are not allowed,
eliminating some sources of user error. One possible implementation choice for
this type is pointer to member. --end note]

The class system_error describes an exception object used to
report error conditions that have an associated error code. Such error
conditions typically originate from the operating system or other low-level
application program interfaces.