A
preprocessing directive consists of a sequence of preprocessing tokens
that satisfies the following constraints:
At the start of translation phase 4,
the first preprocessing token in the sequence,
referred to as a
directive-introducing token,
begins with the first character in the source file
(optionally after whitespace containing no new-line characters) or
follows whitespace containing at least one new-line character,
and is
- a # preprocessing token, or
- an import preprocessing token
immediately followed on the same logical source line by a
,
<,
identifier, or
:
preprocessing token, or
- a module preprocessing token
immediately followed on the same logical source line by an
identifier,
:, or
;
preprocessing token, or
- an export preprocessing token
immediately followed on the same logical source line by
one of the two preceding forms.