error_category Class

Represents the abstract, common base for objects that describes a category of error codes.

Syntax

class error_category;

constexpr error_category() noexcept;
virtual ~error_category();
error_category(const error_category&) = delete

Remarks

Two predefined objects implement error_category: generic_category and system_category.

Members

Typedefs

Name Description
value_type A type that represents the stored error code value.

Functions

Name Description
default_error_condition Stores the error code value for an error condition object.
equivalent Returns a value that specifies whether error objects are equivalent.
generic_category
message Returns the name of the specified error code.
name Returns the name of the category.
system_category

Operators

Name Description
operator= Assignment operator.
operator== Tests for equality between error_category objects.
operator!= Tests for inequality between error_category objects.
operator< Tests if the error_category object is less than the error_category object passed in for comparison.

default_error_condition

Stores the error code value for an error condition object.

virtual error_condition default_error_condition(int _Errval) const;

Parameters

_Errval
The error code value to store in the error_condition.

Return Value

Returns error_condition(_Errval, *this).

Remarks

equivalent

Returns a value that specifies whether error objects are equivalent.

virtual bool equivalent(value_type _Errval,
    const error_condition& _Cond) const;

virtual bool equivalent(const error_code& _Code,
    value_type _Errval) const;

Parameters

_Errval
The error code value to compare.

_Cond
The error_condition object to compare.

_Code
The error_code object to compare.

Return Value

true if the category and value are equal; otherwise, false.

Remarks

The first member function returns *this == _Cond.category() && _Cond.value() == _Errval.

The second member function returns *this == _Code.category() && _Code.value() == _Errval.

generic_category

const error_category& generic_category();

message

Returns the name of the specified error code.

virtual string message(error_code::value_type val) const = 0;

Parameters

val
The error code value to describe.

Return Value

Returns a descriptive name of the error code val for the category. If the error code is unrecognized, returns "unknown error".

Remarks

name

Returns the name of the category.

virtual const char *name() const = 0;

Return Value

Returns the name of the category as a null-terminated byte string.

operator=

error_category& operator=(const error_category&) = delete;

operator==

Tests for equality between error_category objects.

bool operator==(const error_category& right) const;

Parameters

right
The object to be tested for equality.

Return Value

true if the objects are equal; false if the objects aren't equal.

Remarks

This member operator returns this == &right.

operator!=

Tests for inequality between error_category objects.

bool operator!=(const error_category& right) const;

Parameters

right
The object to be tested for inequality.

Return Value

true if the error_category object isn't equal to the error_category object passed in right; otherwise false.

Remarks

The member operator returns (!*this == right).

operator<

Tests if the error_category object is less than the error_category object passed in for comparison.

bool operator<(const error_category& right) const;

Parameters

right
The error_category object to be compared.

Return Value

true if the error_category object is less than the error_category object passed in for comparison; Otherwise, false.

Remarks

The member operator returns this < &right.

system_category

const error_category& system_category();

value_type

A type that represents the stored error code value.

typedef int value_type;

Remarks

This type definition is a synonym for int.