[lex.separate] (original) (raw)

The text of the program is kept in units calledsource files in this document.

A source file together with all the and source files included via the preprocessing directive #include, less any source lines skipped by any of the conditional inclusion ([cpp.cond]) preprocessing directives, as modified by the implementation-defined behavior of any conditionally-supported-directives ([cpp.pre]) and pragmas ([cpp.pragma]), if any, is called a preprocessing translation unit.

[Note 1:

A C++ program need not all be translated at the same time.

Translation units can be separately translated and then later linked to produce an executable program ([basic.link]).

— _end note_]