ISO10646 UTF-16 文字列リテラルを使用する国際化アプリケーションをサポートする必要がある場合には、-xustr=ascii_utf16_ushort を指定します。-xustr=no を指定すれば、コンパイラが U"ASCII_string" 文字列リテラルを認識しなくなります。このオプションのコマンド行の右端にあるインスタンスは、それまでのインスタンスをすべて上書きします。
-xustr=ascii_ustf16_ushort は、U"ASCII_string" 文字列リテラルを指定しなくてもかまいません。そのようにしても、エラーとはなりません。
デフォルトは -xustr=no です。引数を指定しないで -xustr を指定した場合、コンパイラはこの指定を受け付けず、警告を出力します。C または C++ 規格で構文の意味が定義されると、デフォルト値が変わることがあります。
次の例は、U が先頭に付いた、引用符に入った文字列リテラルを示しています。-xustr を指定するコマンドも示しています。
example% cat file.cc const unsigned short *foo = U"foo"; const unsigned short bar[] = U"bar"; const unsigned short *fun() {return U"fun"}; example% CC -xustr=ascii_utf16_ushort file.cc -c |
16 ビットの文字リテラルはサポートされていません。