Sun Studio 12:C++ 用户指南

A.2.177 -xustr={ascii_utf16_ushort| no}

如果代码中包含要编译器转换成目标文件中 UTF-16 字符串的字符串文字,可以使用该选项。如果不指定该选项,编译器既不生成、也不识别 16 位的字符串文字。使用该选项时,U"ASCII_string" 字符串文字会识别为无符号短整型数组。因为这样的字符串还不属于任何标准,所以该选项的作用是使非标准 C++ 得以识别。

不是所有文件都必须使用该选项编译。

A.2.177.1 值

如果需要支持使用 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

警告

不支持十六位的字符文字。