Using Standard C++ Headers

Using Standard C++ Headers

You include the contents of a standard header by naming it in an include directive, as in:

#include <iostream>  /* include I/O facilities */

You can include the standard headers in any order, a standard header more than once, or two or more standard headers that define the same macro or the same type. Do not include a standard header within a declaration. Do not define macros that have the same names as keywords before you include a standard header.

A Standard C++ header includes any other Standard C++ headers it needs to define needed types. (Always include explicitly any Standard C++ headers needed in a translation unit, however, lest you guess wrong about its actual dependencies.) A Standard C header never includes another standard header. A standard header declares or defines only the entities described for it in this document.

Every function in the library is declared in a standard header. Unlike in Standard C, the standard header never provides a masking macro, with the same name as the function, that masks the function declaration and achieves the same effect.

If an implementation supports namespaces, all names in the Standard C++ headers are defined in the std namespace. You refer to the name cin, for example, as std::cin. Alternatively, you can write the declaration:

using namespace std;

which promotes all library names into the current namespace. If you include one of the C standard headers, such as <stdio.h>, the individual names declared or defined in that header are promoted for you. Note that macro names are not subject to the rules for nesting namespaces.