19 Diagnostics library [diagnostics]

19.5 System error support [syserr]

19.5.4 Class error_­condition [syserr.errcondition]

19.5.4.1 Overview [syserr.errcondition.overview]

The class error_­condition describes an object used to hold values identifying error conditions.
[Note
:
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<class ErrorConditionEnum>
      error_condition(ErrorConditionEnum e) noexcept;

    // [syserr.errcondition.modifiers], modifiers
    void assign(int val, const error_category& cat) noexcept;
    template<class ErrorConditionEnum>
      error_condition& operator=(ErrorConditionEnum e) noexcept;
    void clear() noexcept;

    // [syserr.errcondition.observers], observers
    int value() const noexcept;
    const error_category& category() const noexcept;
    string message() const;
    explicit operator bool() const noexcept;

  private:
    int val_;                   // exposition only
    const error_category* cat_; // exposition only
  };
}