8.3 Lexical conventions
Describes the lexical conventions of implementation-defined aspects of the Arm® C++ compiler and C++ library, as required by the ISO C++ Standard.
- Mapping of the physical source file characters to the basic source character set (2.2).
- The input files are encoded in UTF-8. Due to the design of UTF-8 encoding,
the basic source character set is represented in the source file in the same
way as the ASCII encoding of the basic character set.
- Physical source file characters (2.2).
- The source file characters are encoded in UTF-8.
- Conversion of characters from source character set to execution character
- The source character set and the execution character set are the same.
- Requirement of source for translation units when locating template definitions (2.2).
- When locating the template definitions related to template instantiations,
the source of the translation units that define the template definitions is
- Values of execution character sets (2.3).
- Both the execution character set and the wide execution character set
consist of all the code points defined by ISO/IEC 10646.
- Mapping the header name to external source files (2.8).
- In both forms of the
#include preprocessing directive, the character sequences that specify header names are mapped to external header source file names.
- Semantics of non-standard escape sequences (2.13.3).
- The following non-standard escape sequences are accepted for compatibility with GCC:
- Value of wide-character literals containing multiple characters (2.13.3).
- If a wide-character literal contains more than one character, only the right-most character in the literal is used.
- Value of an ordinary character literal outside the range of its
corresponding type (2.13.3).
- This case is diagnosed and rejected.
- Floating literals (2.13.4).
- For a floating literal whose scaled value cannot be represented as a floating-point value, the nearest even floating-point value is chosen.
- String literal concatenation (2.13.5).
- Differently prefixed string literal tokens cannot be concatenated, except
for the ones specified by the ISO C++ Standard.