標準について最も美しいのは、非常に多くの標準があることです。C++11 標準をCLI 標準 (第 5 版)と比較して読んでいると、識別子の命名について少し混乱しています。
C++ が[ISO/IEC 14882:2011 ページ 23]に従って許可する場所ASCI: _a-zA-Z0-9
(順序に関係なく) および[ページ 1249] に従って [1249 ページ]$
多くの Unicode 文字.. (0x24)の定義はありません。一方、[ECMA335 パーティション II ページ 13]ではa-zA-Z0-9_``@$
、識別子文字として使用できます。
つまり、C++ は$
識別子名内で (0x24) をサポートすべきではありませんが、CLR はサポートすべきです。これをテストすると、正反対のことがわかりました。
- ネイティブ C++ (ネイティブ MSVC [VS2010 Ultimate]、GCC [2.8.1]、minGW [最新] ) がサポートしてい
$
ます。 - C++\CLI または C# (MSVC) でさえサポートしていません
$
。
それで、真実は何ですか?基準を読んでいるときに何か見落としがありますか? それとも、みんな自分のやりたいことをやっていますか?