标准最美妙的地方在于有这么多。与CLI-Standard (5th edition)相比,阅读C++11 标准时,我对标识符命名有点困惑。
C++ 允许根据[ISO/IEC 14882:2011 第 23 页] ASCI:(_a-zA-Z0-9
无论顺序)和根据[第 1249 页]$
很多 unicode 字符.. (0x24)没有定义。另一方面[ECMA335 partition II page 13]允许a-zA-Z0-9_``@$
作为标识符字符。
换句话说,C++ 不应该支持$
(0x24) 内部标识符名称,但 CLR 应该。在测试这个时,我注意到完全相反:
- 本机 C++(本机 MSVC [VS2010 Ultimate]、GCC [2.8.1]、minGW [最新])支持
$
; - C++\CLI 甚至 C# (MSVC) 都不支持
$
.
那么真相是什么?阅读标准时我是否遗漏了什么?还是每个人都在做他想做的事?