6.1 KiB
[syserr.errcondition]
19 Diagnostics library [diagnostics]
19.5 System error support [syserr]
19.5.5 Class error_condition [syserr.errcondition]
19.5.5.1 Overview [syserr.errcondition.overview]
The class error_condition describes an object used to hold values identifying error conditions.
[Note 1:
error_condition values are portable abstractions, while error_code values ([syserr.errcode]) are implementation specific.
â end note]
namespace std {class error_condition {public:// [syserr.errcondition.constructors], constructors error_condition() noexcept; error_condition(int val, const error_category& cat) noexcept; template error_condition(ErrorConditionEnum e) noexcept; // [syserr.errcondition.modifiers], modifiersvoid assign(int val, const error_category& cat) noexcept; template error_condition& operator=(ErrorConditionEnum e) noexcept; void clear() noexcept; // [syserr.errcondition.observers], observersint value() const noexcept; const error_category& category() const noexcept; string message() const; explicit operator bool() const noexcept; private:int val_; // exposition onlyconst error_category* cat_; // exposition only};}
19.5.5.2 Constructors [syserr.errcondition.constructors]
error_condition() noexcept;
Effects: Initializes val_ with 0 and cat_ with &generic_category().
error_condition(int val, const error_category& cat) noexcept;
Effects: Initializes val_ with val and cat_ with &cat.
template<class ErrorConditionEnum> error_condition(ErrorConditionEnum e) noexcept;
Constraints: is_error_condition_enum_v is true.
Effects: Equivalent to:error_condition ec = make_error_condition(e); assign(ec.value(), ec.category());
19.5.5.3 Modifiers [syserr.errcondition.modifiers]
void assign(int val, const error_category& cat) noexcept;
Postconditions: val_ == val and cat_ == &cat.
template<class ErrorConditionEnum> error_condition& operator=(ErrorConditionEnum e) noexcept;
Constraints: is_error_condition_enum_v is true.
Effects: Equivalent to:error_condition ec = make_error_condition(e); assign(ec.value(), ec.category());
Returns: *this.
void clear() noexcept;
Postconditions: value() == 0 and category() == generic_category().
19.5.5.4 Observers [syserr.errcondition.observers]
int value() const noexcept;
Returns: val_.
const error_category& category() const noexcept;
Returns: **cat_*.
string message() const;
Returns: category().message(value()).
explicit operator bool() const noexcept;
Returns: value() != 0.
19.5.5.5 Non-member functions [syserr.errcondition.nonmembers]
error_condition make_error_condition(errc e) noexcept;
Returns: error_condition(static_cast(e), generic_category()).