Oracle® Solaris Studio 12.4 新增功能

退出打印视图

更新时间: 2014 年 12 月
 
 

其他 C++ 编译器更改

下面列出了此 5.13 发行版中特定于 C++ 编译器的新增和更改的功能。有关更多信息,请参见 CC(1) 手册页。

C++ 编译器更改包括编译器通用的新增和更改的功能中介绍的更改。

有关详细信息,请参见Oracle Solaris Studio 12.4:C++ 用户指南 CC 手册页。

  • 在所有平台上支持 –compat=g

  • 通过新编译器选项:–std,可以选择 C++ 03 或 C++ 11 语言变种并具有 g++ 二进制文件兼容性。使用 –std=c++11 时,存在以下限制:

    • 当前不支持通用字符名称(转义的 Unicode 字符)。

    • .h 结尾的非标准 iostream 标题(例如 <iostream.h><fstream.h> 等)不可用。这些标题用于促进从旧样式的 C++ 转换为 C++98。

  • 新编译器选项:–features=[no%]rtti 可以禁用运行时类型标识 (runtime type identification, RTTI)。

  • 新编译器选项:–xprevise 生成可以在代码分析器中查看的源代码的静态分析。

  • 具有 -xoption 等效项的以下选项现在已弃用:

    • –help

    • –inline

    • –libmieee

    • –libmil

    • –nolib

    • –nolibmil

    • –pg

    • –time

    • –unroll

    相反,您应该使用 –xhelp–xinline–xlibmieee 等。

  • 在 x86 上支持 –xregs=float

  • –errtags 的行为现在和 C 编译器一样,但仅针对警告消息显示标记。在前面的 C++ 编译器中,–errtags 选项导致在警告和错误消息中输出一个标记。

  • 缺省 –template 选项从 –template=extdef 更改为 –template=no%extdef

    此更改是因为没有其他编译器使用由 –template=extdef 假定的 definitions separate 模板模型。–template=extdef 选项对如何组织源代码有严格要求,大多数代码不遵循该要求。除非仅使用 Oracle Solaris Studio C++ 进行开发,否则可能需要 –template=no%extdef 选项。

    有关更多信息,请参见Oracle Solaris Studio 12.4:C++ 用户指南 中的第 6  章 创建和使用模板和《Understanding the Effects of the Changed Default C++ Template Compilation Model》(《了解更改的缺省 C++ 模板编译模型的效果》)。


    注 -  –library=stdcxx4 选项当前不与 –template=no%extdef 配合使用。如果使用 –library=stdcxx4 选项,则在命令行上编译 C++ 代码时指定 –template=extdef,直到提供了库的修补程序。