This header defines a series of standardized elements to report error conditions originating from the operating system or other low-level operations.
Most such errors are identified by a single integer value, which is sometimes system-specific. The class error_code encapsulates and preserves these system-generated values associating them with an error_category.
These objects can be compared against objects of type error_condition, which is a very similar type meant to represent the same errors, but in a portable way. In this way, library calls to the system may produce error_code values (which preserve system-specific values), and programs can compare them against error_condition objects (which are portable between systems).