Files
cppdraft_translate/cppdraft/lex/separate.md
2025-10-25 03:02:53 +03:00

29 lines
1.3 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[lex.separate]
# 5 Lexical conventions [[lex]](./#lex)
## 5.1 Separate translation [lex.separate]
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lex.tex#L27)
The text of the program is kept in units called[*source files*](#def:source_file "5.1Separate translation[lex.separate]") in this document[.](#1.sentence-1)
A source file together with all the <headers> and source files [included](cpp.include "15.3Source file inclusion[cpp.include]") via the preprocessing
directive #include, less any source lines skipped by any of the
conditional inclusion ([[cpp.cond]](cpp.cond "15.2Conditional inclusion")) preprocessing directives,
as modified by the implementation-defined behavior of any
conditionally-supported-directives ([[cpp.pre]](cpp.pre "15.1Preamble")) and pragmas ([[cpp.pragma]](cpp.pragma "15.10Pragma directive")),
if any, is
called a [*preprocessing translation unit*](#def:translation_unit,preprocessing "5.1Separate translation[lex.separate]")[.](#1.sentence-2)
[*Note [1](#note-1)*:
A C++ program need not all be translated at the same time[.](#1.sentence-3)
Translation units can be separately translated and then later linked
to produce an executable program ([[basic.link]](basic.link "6.7Program and linkage"))[.](#1.sentence-4)
— *end note*]