Files
cppdraft_translate/cppdraft/syserr/errcondition.md
2025-10-25 03:02:53 +03:00

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]

1

#

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;

1

#

Effects: Initializes val_ with 0 and cat_ with &generic_category().

🔗

error_condition(int val, const error_category& cat) noexcept;

2

#

Effects: Initializes val_ with val and cat_ with &cat.

🔗

template<class ErrorConditionEnum> error_condition(ErrorConditionEnum e) noexcept;

3

#

Constraints: is_error_condition_enum_v is true.

4

#

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;

1

#

Postconditions: val_ == val and cat_ == &cat.

🔗

template<class ErrorConditionEnum> error_condition& operator=(ErrorConditionEnum e) noexcept;

2

#

Constraints: is_error_condition_enum_v is true.

3

#

Effects: Equivalent to:error_condition ec = make_error_condition(e); assign(ec.value(), ec.category());

4

#

Returns: *this.

🔗

void clear() noexcept;

5

#

Postconditions: value() == 0 and category() == generic_category().

19.5.5.4 Observers [syserr.errcondition.observers]

🔗

int value() const noexcept;

1

#

Returns: val_.

🔗

const error_category& category() const noexcept;

2

#

Returns: **cat_*.

🔗

string message() const;

3

#

Returns: category().message(value()).

🔗

explicit operator bool() const noexcept;

4

#

Returns: value() != 0.

19.5.5.5 Non-member functions [syserr.errcondition.nonmembers]

🔗

error_condition make_error_condition(errc e) noexcept;

1

#

Returns: error_condition(static_cast(e), generic_category()).