12

C++98 では、これがコンパイル フェーズの標準の 1 つになっているようです。それは何を意味し、なぜ最初に実行されるのですか?

4

1 に答える 1

11

ユニバーサル キャラクター名は\uFFFDまたはのようになり\U0010FFFDます。これは、ソース コードのエンコーディングにその文字が含まれていない場合に、ソース コードに文字を書き込む方法です。

C++ では、基本ソース文字セットにない文字は、変換の最初のフェーズでユニバーサル文字名に変換されるように指定されています。これは、基本的なソース文字セットには含まれないが、ソース文字セットには含まれるユニバーサル キャラクタ名と文字が同じように扱われるようにするためです。

as-ifルールは、実装がユニバーサル文字名として記述された拡張文字を、ソースに文字通り現れる拡張文字と同じように扱う限り、このユニバーサル文字名の変換を実際に行う必要がないことを意味します。

于 2012-06-17T19:19:56.600 に答える