私は私が使用できないことを見つけるために-fextended-identifiers
オプションが有効になっている場合でも、g ++4.7で有効な識別子として:
int main(int argc, const char* argv[])
{
const char* = "I'm very happy";
return 0;
}
main.cpp:3:3:エラー:プログラムmain.cpp:3:3の迷走'\ 360':エラー:プログラム
main.cpp:3:3の迷走'\ 237'
:エラー:迷走'\ 230'プログラム
main.cpp:3:3:エラー:プログラム内の「\203」の迷い
いくつかグーグルした後、UTF-8文字が識別子でまだサポートされていないことを発見しましたが、ユニバーサル文字名は機能するはずです。だから私は私のソースを次のように変換します:
int main(int argc, const char* argv[])
{
const char* \U0001F603 = "I'm very happy";
return 0;
}
main.cpp:3:15:エラー:ユニバーサル文字\U0001F603が識別子で無効です
したがって、明らかに有効な識別子文字ではありません。ただし、この標準では10000-1FFFD
、Annex E.1の範囲の文字を明確に許可しており、E.2の最初の文字として許可していません。
私の次の努力は、他の許可されたUnicode文字が機能するかどうかを確認することでしたが、私が試したものはどれも機能しませんでした。これまでに重要なPILEOFPOO()キャラクターでさえありません。
それで、意味のある説明的な変数名のために、何が得られますか?-fextended-identifiers
それが宣伝するように行いますか?最新のビルドでのみサポートされていますか?また、他のコンパイラにはどのようなサポートがありますか?