Keil Logo

Lexical conventions

B.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 set (2.2).
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 not required.
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:
Escape sequence Code point
\e U+001B
\E U+001B
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.
Non-ConfidentialPDF file icon PDF version101754_0616_01_en
Copyright © 2019–2021 Arm Limited or its affiliates. All rights reserved. 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.