Certain classes defined in the C++ standard library are required to be derived from
other classes
in the C++ standard library.
An implementation may derive such a class directly from the required base or indirectly
through a hierarchy of base classes with names reserved to the implementation.
There is an implicit exception to this rule for types that are
described as synonyms for basic integral types, such as
size_t ([support.types]) and
streamoff ([stream.types]).