Objects of this type hold a condition value associated with a category.
Objects of this type describe errors in a generic way so that they may be portable across different systems. This is in contrast with error_code objects, that may contain system-specific information.
Because error_condition objects can be compared with error_code objects directly by using relational operators, error_condition objects are generally used to check whether a particular error_code obtained from the system matches a specific error condition no matter the system.
The categories associated with the error_condition and the error_code define the equivalences between them.