17 Library introduction [library]

17.6 Library-wide requirements [requirements]

17.6.1 Library contents and organization [organization]

17.6.1.1 Library contents [contents]

The C++ standard library provides definitions for the following types of entities: macros, values, types, templates, classes, functions, objects.

All library entities except macros, operator new and operator delete are defined within the namespace std or namespaces nested within namespace std.173 It is unspecified whether names declared in a specific namespace are declared directly in that namespace or in an inline namespace inside that namespace.174

Whenever a name x defined in the standard library is mentioned, the name x is assumed to be fully qualified as ::std::x, unless explicitly described otherwise. For example, if the Effects section for library function F is described as calling library function G, the function ::std::G is meant.

The C standard library headers (Annex [depr.c.headers]) also define names within the global namespace, while the C++ headers for C library facilities ([headers]) may also define names within the global namespace.

This gives implementers freedom to use inline namespaces to support multiple configurations of the library.