Xoc*_*zin 14 c++ compilation g++ visual-studio
传统上,接受的字符我们可以如在C++是一个标识符的一部分使用_, a-z, A-Z和0-9第一个字符之后.
有没有办法配置Visual Studio或GCC接受表情符号作为标识符名称(或任何其他任意unicode字符)的一部分?
int a = 2, = 3;
++; *= 2;
int ?(int a, int b) {return a + b;}
cout << ?(a * , 3) << endl;
const double ? = 3.14159;
double ? = sin(? / 2.0);
Run Code Online (Sandbox Code Playgroud)
我们可以从clang中的变量名中的Unicode /特殊字符看到不允许的?C++标准允许某些扩展字符集.该表情符码似乎陷入了允许的范围.
据我所知,使用此实例示例 Visual Studio 2013支持标识符中的扩展字符,这得到C++标识符文档的支持:
C++规范允许使用Unicode字符进行命名
而且,Visual C++本身也允许.不限于ASCII.
并提供了指示自2005年以来允许这样做的链接.虽然bames53指出可能存在Windows限制表情符号.
gcc另一方面,除了使用转义码,它们的字符集文档似乎不支持这个:
在标识符中,ASCII范围之外的字符只能使用'\ u'和'\ U'转义符指定,不能直接使用.如果使用-std = c90等选项指定了严格的ISO C90一致性,或者使用了-fno-extended-identifiers,则标识符中不允许使用这些转义符.