Implementation

The C++ standard, ISO/IEC 14882, describes an abstract language not tied to any particular system, with many things left unspecified. When the standard is implemented in a compiler, the combination of the compiler, the OS, and the hardware is the implementation. For example, the standard does not specify what range of values can be stored in an int (although it does require a minimum range); however, a particularly implementation will have ints of a particular size (although the implementation may allow the user to select this size from a range of options).

An implementation must define all behaviours the standard describes as implementation defined. However, an implementation is not required to define undefined behaviour, although it is permitted to do so.