すいません、嘘を書いてました。この記事のことは一旦全て忘れてください。
Cryoliteさんがブログに書きそうにないので、代わりに書きます。
C++ における日本語識別子は実装依存だけれど,実装依存の部分は "the set of physical source file characters accepted" のところだけなので,この部分が日本語を受け付けると実装が明記しているなら以下はまったく問題ないなこれ.
2013-10-16 13:39:21 via web
[Wandbox]三へ( へ?? ?)へ ハッハッ URL
Annex E の [charname.allowed] と [charname.disallowed] がくそまじめに実装されてやがる……日本語の句読点「、」「。」は C++ の識別子の文字にはツカエマセーンwwwww
2013-10-16 14:01:01 via web
実装依存ではありますが、C++11では環境によって日本語識別子が使えます。
しかし、規格には「識別子名として許可しないユニバーサルキャラクタ名」というのが規定されています。
コードポイントとしては、以下の範囲です。
0300-036F : ダイアクリティカルマーク1DC0-1DFF : ダイアクリティカルマーク補助20D0-20FF : 記号用ダイアクリティカルマークFE20-FE2F : 半記号
日本人が日常的に使いそうなものとしては、この中のダイアクリティカルマークに、日本語の句読点「、」と「。」および全角カンマ/ピリオド「,」「.」が含まれています。これらの文字は識別子として使用できません。
// checked compiler : Clang 3.3 // NG compiler : GCC 4.8.2 #include <iostream> int main() { int 人生宇宙すべての答え = 42; // OK std::cout << 人生宇宙すべての答え << std::endl; // int 人生、宇宙。すべての答え = 42; // Error! }