読者です 読者をやめる 読者になる 読者になる

識別子に使用できないユニバーサルキャラクタ名

C++

すいません、嘘を書いてました。この記事のことは一旦全て忘れてください。

Cryoliteさんがブログに書きそうにないので、代わりに書きます。


実装依存ではありますが、C++11では環境によって日本語識別子が使えます。
しかし、規格には「識別子名として許可しないユニバーサルキャラクタ名」というのが規定されています。
コードポイントとしては、以下の範囲です。

日本人が日常的に使いそうなものとしては、この中のダイアクリティカルマークに、日本語の句読点「、」と「。」および全角カンマ/ピリオド「,」「.」が含まれています。これらの文字は識別子として使用できません。

// 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!
}