Sun Studio 12:C++ 用户指南

前言

本手册指导您如何使用 SunTM Studio 12 的 C++ 编译器,并提供有关命令行编译器选项的详细信息。本手册适用于精通 C++ 并对 SolarisTM 操作系统和 UNIX® 命令有一定了解的程序员。

本书的结构

本手册包含如下主题:

C++ 编译器第 1 章,C++ 编译器提供有关此编译器的介绍性信息,如标准的一致性和新增功能。 第 2 章,使用 C++ 编译器介绍如何使用此编译器,第 3 章,使用 C++ 编译器选项介绍如何使用此编译器的命令行选项。

编写 C++ 程序第 4 章,语言扩展 讨论如何编译其他 C++ 编译器通常接受的非标准代码。第 5 章,程序组织就如何设置和组织头文件和模板定义提供了一些建议。第 6 章,创建和使用模板介绍如何创建和使用模板,第 7 章,编译模板介绍用来编译模板的各种选项。第 8 章,异常处理介绍异常处理,第 9 章,强制类型转换操作提供有关强制类型转换操作的信息。第 10 章,改善程序性能介绍对 C++ 编译器有很大影响的性能技术。第 11 章,生成多线程程序提供有关生成多线程程序的信息。

第 12 章,使用库介绍如何使用该编译器提供的库。第 13 章,使用 C++ 标准库介绍 C++ 标准库,第 14 章,使用传统 iostream介绍传统 iostream 库(适用于兼容模式),第 15 章,使用复数运算库 介绍复数运算库(适用于兼容模式)。第 16 章,生成库 提供有关生成库的信息。

附录附录 A,C++ 编译器选项 按字母顺序列出了完整的 C++ 编译器选项集,附录 B,Pragma 列出了 C++ 编译器 pragma。

印刷约定

表 P–1 字体约定表

字体 

含义 

示例 

AaBbCc123

命令、文件和目录的名称;计算机屏幕输出 

编辑 .login 文件。

使用 ls -a 列出所有文件。

% You have mail.

AaBbCc123

用户键入的内容,与计算机屏幕输出的显示不同 

% su

Password:

AaBbCc123

要使用实名或值替换的命令行占位符文本 

要删除文件,请键入 rm filename

AaBbCc123

保留未译的新词或术语以及要强调的词 

这些称为 class 选项。

新词术语强调

新词或术语以及要强调的词 

必须成为超级用户才能执行此操作。

《书名》 

书名 

阅读《用户指南》的第 6 章。 

表 P–2 代码约定表

代码符号 

含义 

表示法 

代码示例 

[ ] 

方括号中的参数是可选参数。 

O[n]

O4, O

{ } 

大括号中是针对所需选项的一组选择内容。 

d{y|n}

dy

"|" 或 "-" 符号用于分隔多个参数,只能选择其中一个参数。 

B{dynamic|static}

Bstatic

冒号与逗号类似,有时用于分隔多个参数。 

Rdir[:dir]

R/local/libs:/U/a

… 

省略号表示一系列省略。 

xinline=f1[,…fn]

xinline=alpha,dos

Shell 提示符

Shell 

提示符 

C shell 

machine-name%

C shell 超级用户 

machine-name#

Bourne shell、Korn shell 和 GNU Bourne-Again shell 

$

Bourne shell、Korn shell 和 GNU Bourne-Again shell 超级用户 

#

受支持的平台

此 Sun Studio 发行版支持使用 SPARC® 和 x86 系列处理器体系结构的系统:UltraSPARC®、SPARC64、AMD64、Pentium 和 Xeon EM64T。可从以下位置获得硬件兼容性列表,在列表中可以查看您正在使用的 Solaris 操作系统版本所支持的系统:http://www.sun.com/bigadmin/hcl。这些文档中给出了平台类型间所有实现的区别。

在本文档中,与 x86 相关的术语的含义如下:

有关受支持的系统,请参阅硬件兼容性列表。

访问 Sun Studio 文档

可以访问以下位置的文档:

可以通过 Internet 访问 docs.sun.com Web 站点 (http://docs.sun.com) 阅读、打印和购买 Sun Microsystems 的各种手册。如果找不到某手册,请参见随软件一起安装在本地系统或网络上的文档索引。


注 –

Sun 对本文档中提到的第三方 Web 站点的可用性不承担任何责任。对于此类站点或资源中的(或通过它们获得的)任何内容、广告、产品或其他资料,Sun 并不表示认可,也不承担任何责任。对于因使用或依靠此类站点或资源中的(或通过它们获得的)任何内容、产品或服务而造成的或连带产生的实际或名义损坏或损失,Sun 概不负责,也不承担任何责任。


采用易读格式的文档

该文档以易读格式提供,以方便残障用户使用辅助技术进行阅读。可以按照下表所述找到文档的易读版本。如果该软件未安装在 /opt 目录中,请询问系统管理员以获取系统中的等效路径。

文档类型 

易读版本的格式和位置 

手册(第三方手册除外) 

HTML,位于 http://docs.sun.com

第三方手册: 

  • 《标准 C++ 库类参考

  • 《标准 C++ 库用户指南

  • 《Tools.h++ 类库参考

  • 《Tools.h++ 用户指南

HTML,位于 Solaris 平台上已安装软件中,可通过文档索引 (file:/opt/SUNWspro/docs/index.html) 获取

自述文件 

HTML,位于 Sun Developer Network 门户 http://developers.sun.com/sunstudio/documentation/ss12

手册页 

HTML,位于已安装软件中,可通过文档索引(在 Solaris 平台上为 file:/opt/SUNWspro/docs/index.html;在 Linux 平台上为 file:/opt/sun/sunstudio12/docs/index.html)获取

联机帮助 

HTML,可通过 IDE 中的“帮助”菜单和“帮助”按钮获取 

发行说明 

HTML,位于 http://docs.sun.com

相关 Sun Studio 文档

下表列出了可通过 file:/opt/SUNWspro/docs/index.htmlhttp://docs.sun.com 获取的相关文档。如果该软件未安装在 /opt 目录中,请询问系统管理员以获取系统中的等效路径。

文档标题 

说明 

C 用户指南

提供了所有编译器选项的参考、支持的 ISO/IEC 9899:1999(称为 C99)功能的说明、实现细节(如 pragma 和声明说明符)以及有关使用 lint 代码检查程序的完整信息。

C++ 用户指南

介绍了如何使用 C++ 编译器,还提供了有关命令行编译器选项、程序组织、pragma、模板、异常处理、使用强制类型转换运算符以及使用和生成库的详细信息。 

《Fortran 编程指南

介绍了如何在 Solaris 环境中编写高效 Fortran 程序;并介绍了输入/ 输出、库、性能、调试和并行处理。 

《Fortran 库参考

详细介绍 Fortran 库以及内函数。 

《OpenMP API 用户指南

概括介绍了 OpenMP 多重处理 API,并提供了有关实现的具体信息。 

《数值计算指南

介绍了与浮点计算的数值精度有关的问题。 

访问相关的 C++ 手册页

本手册提供了可用于 C++ 库的手册页列表。下表列出了与 C++ 相关的其他手册页。

标题 

说明 

c++filt

按顺序复制每个文件名,并在解码类似 C++ 还原名称的符号之后将文件名写入标准输出 

dem

还原指定的一个或多个 C++ 名称 

fbe

从汇编语言源文件创建目标文件 

fpversion

打印系统 CPU 和 FPU 的相关信息 

gprof

生成程序的可执行配置文件 

inline

扩展汇编程序的内联过程调用 

lex

生成词法分析程序 

rpcgen

生成 C/C++ 代码以实现 RPC 协议 

sigfpe

允许对指定 SIGFPE 代码进行信号处理 

stdarg

处理变量参数列表 

varargs

处理变量参数列表 

version

显示目标文件或二进制文件的版本标识 

yacc

将上下文无关的语法转换成一组表,用于执行 LALR(1) 分析算法的简单自动化 

访问 Solaris 相关文档

下表列出了可从 docs.sun.com Web 站点上获取的相关文档。

文档集合 

文档标题 

说明 

Solaris Reference Manual Collection 

请参见手册页各章节的标题。 

提供 Solaris 操作系统的有关信息。 

Solaris Software Developer Collection 

《链接程序和库指南

介绍了 Solaris 链接编辑器和运行时链接程序的操作。 

开发者资源

访问 Sun Developer Network Sun Studio 门户 (http://developers.sun.com/prodtech/cc) 查看下列经常更新的资源:

Sun Studio 门户是 Sun Developer Network Web 站点 (http://developers.sun.com) 上面向开发者的众多其他资源之一。

其他公司出版的书籍

以下是部分 C++ 语言书籍的列表。

由 Bjarne Stroustrup 编著的第三版《The C++ Programming Language 》(Addison-Wesley 出版,1997)。

由 Nicolai Josuttis 编著的《The C++ Standard Library》(Addison-Wesley 出版,1999)。

由 Matthew Austern 编著的《Generic Programming and the STL》(Addison-Wesley 出版,1999)。

由 Angelika Langer 和 Klaus Kreft 合著的《Standard C++ IOStreams and Locales》(Addison-Wesley 出版,2000)。

由 Bruce Eckel 编著的《Thinking in C++, Volume 1, Second Edition》(Prentice Hall 出版,2000)。

由 Margaret A. Ellis 和 Bjarne Stroustrup 合著的《The Annotated C++ Reference Manual》(Addison-Wesley 出版,1990)。

由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著的《Design Patterns: Elements of Reusable Object-Oriented Software》(Addison-Wesley 出版,1995)。

由 Stanley B. Lippman 和 Josee Lajoie 合著的第三版《C++ Primer》(Addison-Wesley 出版,1998)。

由 Scott Meyers 编著的第二版《Effective C++-50 Ways to Improve Your Programs and Designs》(Addison-Wesley 出版,1998)。

由 Scott Meyers 编著的《More Effective C++-35 Ways to Improve Your Programs and Designs》(Addison-Wesley 出版,1996)。

联系 Sun 技术支持

如果您遇到通过本文档无法解决的技术问题,请访问以下 URL:

http://www.sun.com/service/contacting

Sun 欢迎您提出意见

Sun 致力于提高其文档的质量,并十分乐意收到您的意见和建议。您可以通过以下 URL 向 Sun 提交您的意见:

http://www.sun.com/hwdocs/feedback

请在电子邮件的主题行中注明文档的文件号码。例如,本文档的文件号码是 820-1214-10。