Cpp Parser & multibyte chars (bug 274430)
    Esben Mose Hansen 
    kde at mosehansen.dk
       
    Sat Nov 19 14:21:50 UTC 2011
    
    
  
On 2011-11-18 17:55, Milian Wolff wrote:
> Andreas tried to convince me in IRC that this is "broken code", since anything
> besides ASCII in C++ code is undefined.
That is not true, however. According to the standard: (2.2)
1. Physical source file characters are mapped, in an implementation 
defined manner, to the basic source character set (introducing new-line 
characters for end-of-line indicators) if necessary. The set of phys-
ical source file characters accepted is implementation-defined. Trigraph 
sequences (2.4) are replaced
by corresponding single-character internal representations. Any source 
file character not in the basic
source character set (2.3) is replaced by the universal-character-name 
that designates that charac-
ter. (An implementation may use any internal encoding, so long as an 
actual extended character
encountered in the source file, and the same extended character 
expressed in the source file as a
universal-character-name (i.e., using the \uXXXX notation), are handled 
equivalently.)
So any character are valid in the source code in an 
implementation-defined manner. Later on, 2.14.5 explains how these 
characters are valid in strings.
So I am pretty sure it is perfect valid to do "½" or "å" or whatever. 
However, what exactly happens is implementation defined (there is as I 
recall a rather big section on the GCC manual about this).
-- 
very kind regards,
Esben Mose Hansen
    
    
More information about the KDevelop-devel
mailing list