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

29 lines
1.3 KiB
Markdown
Raw 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*]