The identifiers in Table 4 have a special meaning when
appearing in a certain context.
When referred to in the grammar, these identifiers
are used explicitly rather than using the identifier grammar production.
Unless otherwise specified, any ambiguity as to whether a given
identifier has a special meaning is resolved to interpret the
token as a regular identifier.
In addition, some identifiers
appearing as a token or preprocessing-token
are reserved for use by C++
implementations and shall
not be used otherwise; no diagnostic is required.
Each identifier that contains a double underscore
__or begins with an underscore followed by
an uppercase letter
is reserved to the implementation for any use.
On systems in which linkers cannot accept extended
characters, an encoding of the universal-character-name can be used in
forming valid external identifiers.
For example, some otherwise unused
character or sequence of characters can be used to encode the
\u in a universal-character-name.
Extended
characters can produce a long external identifier, but C++ does not
place a translation limit on significant characters for external
identifiers.