40 lines
2.1 KiB
Markdown
40 lines
2.1 KiB
Markdown
[syserr.errcat.overview]
|
||
|
||
# 19 Diagnostics library [[diagnostics]](./#diagnostics)
|
||
|
||
## 19.5 System error support [[syserr]](syserr#errcat.overview)
|
||
|
||
### 19.5.3 Class error_category [[syserr.errcat]](syserr.errcat#overview)
|
||
|
||
#### 19.5.3.1 Overview [syserr.errcat.overview]
|
||
|
||
[1](#1)
|
||
|
||
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/diagnostics.tex#L783)
|
||
|
||
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[.](#1.sentence-1)
|
||
|
||
Classes may be derived from error_category to support
|
||
categories of errors in addition to those defined in this document[.](#1.sentence-2)
|
||
|
||
Such classes shall behave as specified in subclause [[syserr.errcat]](syserr.errcat "19.5.3 Class error_category")[.](#1.sentence-3)
|
||
|
||
[*Note [1](#note-1)*:
|
||
|
||
error_category objects are
|
||
passed by reference, and two such objects
|
||
are equal if they have the same address[.](#1.sentence-4)
|
||
|
||
If there is more than a single object of a custom error_category type,
|
||
such equality comparisons can evaluate to false even for objects holding the same value[.](#1.sentence-5)
|
||
|
||
â *end note*]
|
||
|
||
[ð](#lib:error_category)
|
||
|
||
namespace std {class error_category {public:constexpr error_category() noexcept; virtual ~error_category();
|
||
error_category(const error_category&) = delete;
|
||
error_category& operator=(const error_category&) = delete; virtual const char* name() const noexcept = 0; virtual error_condition default_error_condition(int ev) const noexcept; virtual bool equivalent(int code, const error_condition& condition) const noexcept; virtual bool equivalent(const error_code& code, int condition) const noexcept; virtual string message(int ev) const = 0; bool operator==(const error_category& rhs) const noexcept;
|
||
strong_ordering operator<=>(const error_category& rhs) const noexcept; }; const error_category& [generic_category](syserr.errcat.objects#lib:generic_category "19.5.3.5 Error category objects [syserr.errcat.objects]")() noexcept; const error_category& [system_category](syserr.errcat.objects#lib:system_category "19.5.3.5 Error category objects [syserr.errcat.objects]")() noexcept;}
|