Files
2025-10-25 03:02:53 +03:00

2.6 KiB

[lex.header]

5 Lexical conventions [lex]

5.6 Header names [lex.header]

header-name:
< h-char-sequence >
" q-char-sequence "

h-char-sequence:
h-char h-char-sequenceopt

h-char:
any member of the translation character set except new-line and U+003e greater-than sign

q-char-sequence:
q-char q-char-sequenceopt

q-char:
any member of the translation character set except new-line and U+0022 quotation mark

1

#

The sequences in both forms of header-names are mapped in animplementation-defined manner to headers or to external source file names as specified in [cpp.include].

[Note 1:

Header name preprocessing tokens appear only within a #include preprocessing directive, a __has_include preprocessing expression, or after certain occurrences of an import token (see [lex.pptoken]).

— end note]

2

#

The appearance of either of the characters ' or \ or of either of the character sequences /* or // in aq-char-sequence or an h-char-sequence is conditionally-supported with implementation-defined semantics, as is the appearance of the character" in an h-char-sequence.

[Note 2:

Thus, a sequence of characters that resembles an escape sequence can result in an error, be interpreted as the character corresponding to the escape sequence, or have a completely different meaning, depending on the implementation.

— end note]