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

55 lines
2.6 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.header]
# 5 Lexical conventions [[lex]](./#lex)
## 5.6 Header names [lex.header]
[header-name:](#nt:header-name "5.6Header names[lex.header]")
< [*h-char-sequence*](#nt:h-char-sequence "5.6Header names[lex.header]") >
" [*q-char-sequence*](#nt:q-char-sequence "5.6Header names[lex.header]") "
[h-char-sequence:](#nt:h-char-sequence "5.6Header names[lex.header]")
[*h-char*](#nt:h-char "5.6Header names[lex.header]") [*h-char-sequence*](#nt:h-char-sequence "5.6Header names[lex.header]")opt
[h-char:](#nt:h-char "5.6Header names[lex.header]")
any member of the translation character set except new-line and U+003e greater-than sign
[q-char-sequence:](#nt:q-char-sequence "5.6Header names[lex.header]")
[*q-char*](#nt:q-char "5.6Header names[lex.header]") [*q-char-sequence*](#nt:q-char-sequence "5.6Header names[lex.header]")opt
[q-char:](#nt:q-char "5.6Header names[lex.header]")
any member of the translation character set except new-line and U+0022 quotation mark
[1](#1)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lex.tex#L715)
The sequences in both forms of [*header-name*](#nt:header-name "5.6Header names[lex.header]")*s* are mapped in animplementation-defined manner to headers or to
external source file names as specified in [[cpp.include]](cpp.include "15.3Source file inclusion")[.](#1.sentence-1)
[*Note [1](#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]](lex.pptoken "5.5Preprocessing tokens"))[.](#1.sentence-2)
— *end note*]
[2](#2)
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/lex.tex#L727)
The appearance of either of the characters ' or \ or of
either of the character sequences /* or // in a[*q-char-sequence*](#nt:q-char-sequence "5.6Header names[lex.header]") or an [*h-char-sequence*](#nt:h-char-sequence "5.6Header names[lex.header]") is conditionally-supported with implementation-defined semantics, as is the appearance of the character" in an [*h-char-sequence*](#nt:h-char-sequence "5.6Header names[lex.header]")[.](#2.sentence-1)
[*Note [2](#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[.](#2.sentence-2)
— *end note*]