[syserr.errcat.objects] (original) (raw)

19 Diagnostics library [diagnostics]

19.5 System error support [syserr]

19.5.3 Class error_category [syserr.errcat]

19.5.3.5 Error category objects [syserr.errcat.objects]

const error_category& generic_category() noexcept;

Returns: A reference to an object of a type derived from class error_category.

All calls to this function shall return references to the same object.

Remarks: The object's default_error_condition and equivalent virtual functions shall behave as specified for the class error_category.

The object's name virtual function shall return a pointer to the string "generic".

const error_category& system_category() noexcept;

Returns: A reference to an object of a type derived from class error_category.

All calls to this function shall return references to the same object.

Remarks: The object's equivalent virtual functions shall behave as specified for class error_category.

The object's name virtual function shall return a pointer to the string "system".

The object's default_error_conditionvirtual function shall behave as follows:

If the argument ev is equal to 0, the function returns error_condition(0, generic_category()).

Otherwise, if ev corresponds to a POSIX errno value pxv, the function returns error_condition(pxv, generic_category()).

Otherwise, the function returns error_condition(ev, system_category()).

What constitutes correspondence for any given operating system is unspecified.

[Note 1:

The number of potential system error codes is large and unbounded, and some might not correspond to any POSIX errno value.

Thus implementations are given latitude in determining correspondence.

— _end note_]