[syserr.errcondition.overview]

# 19 Diagnostics library [[diagnostics]](./#diagnostics)

## 19.5 System error support [[syserr]](syserr#errcondition.overview)

### 19.5.5 Class error_condition [[syserr.errcondition]](syserr.errcondition#overview)

#### 19.5.5.1 Overview [syserr.errcondition.overview]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/diagnostics.tex#L1238)

The class error_condition describes an object used to hold values identifying
error conditions[.](#1.sentence-1)

[*Note [1](#note-1)*:

error_condition values are portable abstractions,
while error_code values ([[syserr.errcode]](syserr.errcode "19.5.4 Class error_­code")) are implementation specific[.](#1.sentence-2)

â *end note*]

[ð](#lib:error_condition)

namespace std {class error_condition {public:// [[syserr.errcondition.constructors]](syserr.errcondition.constructors "19.5.5.2 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]](syserr.errcondition.modifiers "19.5.5.3 Modifiers"), modifiersvoid assign(int val, const error_category& cat) noexcept; template<class ErrorConditionEnum> error_condition& operator=(ErrorConditionEnum e) noexcept; void clear() noexcept; // [[syserr.errcondition.observers]](syserr.errcondition.observers "19.5.5.4 Observers"), observersint 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*};}
