[using.headers] (original) (raw)
16 Library introduction [library]
16.4 Library-wide requirements [requirements]
16.4.3 Using the library [using]
16.4.3.2 Headers [using.headers]
The entities in the C++ standard library are defined in headers, whose contents are made available to a translation unit when it contains the appropriate#includepreprocessing directive ([cpp.include]) or the appropriateimport declaration ([module.import]).
A translation unit may include library headers in any order ([lex.separate]).
Each may be included more than once, with no effect different from being included exactly once, except that the effect of including either or depends each time on the lexically current definition ofNDEBUG.149
A translation unit shall include a header only outside of anydeclaration or definition and, in the case of a module unit, only in its global-module-fragment, and shall include the header or import the corresponding header unit lexically before the first reference in that translation unit to any of the entities declared in that header.
No diagnostic is required.