C++ 用户指南 Sun™ Studio 11 PDF 文档
本手册指导您使用 Sun ™ Studio 11 的 C++ 编译器,并提供了有关命令行编译器选项的详细信息。本手册适用于具有 C++ 使用经验并对 Solaris™ 操作系统和 UNIX® 命令有一定了解的编程人员。
本手册包含以下主题:
C++ 编译器。第 1 章提供了有关编译的介绍性信息,诸如标准一致性和新特性。第 2 章说明了如何使用编译器。第 3 章介绍了如何使用编译器的命令行选项。
编写 C++ 程序。第 4 章介绍了如何编译通常可被其他 C++ 编译器接受的非标准代码。
第 5 章建议设置和组织头文件和模板定义。第 6 章介绍了如何创建和使用模板。第 7 章说明了用于编译模板的各种选项。第 8 章介绍了异常处理,类型转换操作的信息则位于第 9 章。第 10 章介绍了显著影响 C++ 编译器的性能技术。第 11 章则提供了生成多线程程序的信息。
库。第 12 章说明了如何使用编译器提供的库。第 13 章介绍了 C++ 标准库。第 14 章介绍了用于兼容模式的传统 iostream 库。第 15 章介绍了用于兼容模式的复数运算库。第16 章则提供了关于生成库的信息。
附录。附录 A 按字母顺序列出了一整套 C++ 编译器选项;附录 B 列出了 C++ 编译器pragma。
阅读本书之前 xxvii
本书的结构 xxvii
印刷约定 xxviii
Shell 提示符 xxix
支持的平台 xxix
访问 Sun Studio 软件和手册页 xxix
访问 Sun Studio 文档 xxxii
访问相关的 Solaris 文档 xxxiv
访问相关的 C++ 手册页 xxxiv
其他公司出版的书籍 xxxv
开发者资源 xxxv
联系 Sun 技术支持 xxxvi
Sun 欢迎您提出意见 xxxvi
第 I 部分 C++ 编译器
1. C++ 编译器 1–1
1.1 Sun Studio 10 C++ 5.8 编译器的新特性和新功能 1–1
1.2 Sun Studio 10 C++ 5.7 编译器的新特性和新功能 1–3
1.3 标准一致性 1–5
1.4 C++ 自述文件 1–5
1.5 手册页 1–6
1.6 C++ 实用程序 1–6
1.7 本地语言支持 1–6
2. 使用 C++ 编译器 2–1
2.1 入门 2–1
2.2 调用编译器 2–2
2.2.1 命令语法 2–3
2.2.2 文件名称约定 2–3
2.2.3 使用多个源文件 2–4
2.3 使用不同编译器版本进行编译 2–4
2.4 编译和链接 2–5
2.4.1 编译和链接序列 2–5
2.4.2 分别编译和链接 2–6
2.4.3 一致编译和链接 2–6
2.4.4 为 SPARC V9 编译 2–7
2.4.5 诊断编译器 2–7
2.4.6 了解编译器的组织 2–8
2.5 预处理指令和名称 2–9
2.5.1 Pragma 2–9
2.5.2 具有可变数量参数的宏 2–9
2.5.3 预定义的名称 2–10
2.5.4 #error 2–10
2.6 内存要求 2–10
2.6.1 交换空间大小 2–10
2.6.2 增加交换空间 2–11
2.6.3 虚拟内存的控制 2–11
2.6.4 内存要求 2–12
2.7 简化命令 2–12
2.7.1 在 C Shell 中使用别名 2–12
2.7.2 使用 CCFLAGS 来指定编译选项 2–13
2.7.3 使用 make 2–13
3. 使用 C++ 参阅编译器选项 3–1
3.1 语法 3–1
3.2 通用指南 3–1
3.3 按功能汇总的选项 3–2
3.3.1 代码生成选项 3–2
3.3.2 编译时性能选项 3–3
3.3.3 调试选项 3–3
3.3.4 浮点选项 3–4
3.3.5 语言选项 3–5
3.3.6 库选项 3–5
3.3.7 许可证选项 3–6
3.3.8 废弃的选项 3–7
3.3.9 输出选项 3–7
3.3.10 运行时性能选项 3–8
3.3.11 预处理程序选项 3–10
3.3.12 文件配置选项 3–10
3.3.13 参考选项 3–11
3.3.14 源文件选项 3–11
3.3.15 模板选项 3–11
3.3.16 线程选项 3–12
第 II 部分 编写 C++ 程序
4. 语言扩展参阅 4–1
4.1 链接程序作用域 4–1
4.2 线程局部存储 4–2
4.3 用限制较少的虚函数覆盖 4–3
4.4 生成 enum 类型和变量的向前声明 4–3
4.5 使用不完整 enum 类型 4–4
4.6 将 enum 名称作为作用域限定符 4–4
4.7 使用匿名 struct 声明 4–5
4.8 传递匿名类实例的地址 4–6
4.9 将静态名称空间作用域函数声明为类友元 4–7
4.10 使用函数名称的预定义 __func__ 符号 4–7
5. 程序组织 5–1
5.1 头文件 5–1
5.1.1 可适应语言的头文件 5–1
5.1.2 幂等头文件 5–2
5.2 模板定义 5–3
5.2.1 包括的模板定义 5–3
5.2.2 独立的模板定义 5–4
6. 创建和使用模板 6–1
6.1 函数模板 6–1
6.1.1 函数模板声明 6–1
6.1.2 函数模板定义 6–2
6.1.3 函数模板用法 6–2
6.2 类模板 6–2
6.2.1 类模板声明 6–3
6.2.2 类模板定义 6–3
6.2.3 类模板成员定义 6–4
6.2.4 类模板的用法 6–5
6.3 模板实例化 6–5
6.3.1 隐式模板实例化 6–5
6.3.2 显式模板实例化 6–6
6.4 模板组合 6–7
6.5 默认模板参数 6–8
6.6 模板专门化 6–8
6.6.1 模板专门化声明 6–8
6.6.2 模板专门化定义 6–9
6.6.3 模板专门化使用和实例化 6–9
6.6.4 部分专门化 6–9
6.7 模板问题部分 6–10
6.7.1 非本地名称解析和实例化 6–10
6.7.2 作为模板参数的本地类型 6–11
6.7.3 模板函数的友元声明 6–12
6.7.4 在模板定义内使用限定名称 6–14
6.7.5 嵌套模板名称 6–14
6.7.6 引用静态变量和静态函数 6–15
6.7.7 在同一目录中使用模板生成多个程序 6–15
7. 编译模板 7–1
7.1 冗余编译 7–1
7.2 系统信息库管理 7–1
7.2.1 生成的实例 7–1
7.2.2 整个类实例化 7–2
7.2.3 编译时实例化 7–2
7.2.4 模板实例的放置和链接 7–2
7.3 外部实例 7–3
7.3.1 静态实例 7–4
7.3.2 全局实例 7–4
7.3.3 显式实例 7–5
7.3.4 半显式实例 7–5
7.4 模板系统信息库 7–5
7.4.1 系统信息库结构 7–5
7.4.2 写入模板系统信息库 7–6
7.4.3 从多模板系统信息库读取 7–6
7.4.4 共享模板系统信息库 7–6
7.4.5 模板实例自动与 -instances=extern 一致 7–6
7.5 模板定义搜索 7–7
7.5.1 源文件位置约定 7–7
7.5.2 定义搜索路径 7–7
7.5.3 诊断有问题的搜索 7–7
8. 异常处理 8–1
8.1 同步和异步异常 8–1
8.2 指定运行时错误 8–1
8.3 禁用异常 8–2
8.4 使用运行时函数和预定义的异常 8–3
8.5 将异常与信号和 Setjmp/Longjmp 混合 8–4
8.6 生成具有异常的共享库 8–4
9. 类型转换操作 9–1
9.1 const_cast 9–2
9.2 reinterpret_cast 9–2
9.3 static_cast 9–3
9.4 动态类型转换 9–4
9.4.1 将分层结构向上类型转换 9–4
9.4.2 类型转换到 void* 9–4
9.4.3 将分层结构向下或交叉类型转换 9–4
10. 改善程序性能 10–1
10.1 避免临时对象 10–1
10.2 使用内联函数 10–2
10.3 使用默认运算符 10–2
10.4 使用值类 10–3
10.4.1 选择直接传递类 10–3
10.4.2 在不同的处理器上直接传递类 10–4
10.5 缓存成员变量 10–4
11. 生成多线程程序 11–1
11.1 生成多线程程序 11–1
11.1.1 表明多线程编译 11–2
11.1.2 与线程和信号一起使用 C++ 支持库 11–2
11.2 在多线程程序中使用异常 11–2
11.2.1 线程取消 11–2
11.3 在线程之间共享 C++ 标准库对象 11–3
11.4 在多线程环境中使用传统 iostream 11–5
11.4.1 多线程安全的 iostream 库的组织 11–6
11.4.2 对 iostream 库进行接口更改 11–11
11.4.3 全局和静态数据 11–14
11.4.4 序列执行 11–14
11.4.5 对象锁定 11–15
11.4.6 多线程安全类 11–16
11.4.7 对象析构 11–17
11.4.8 示例应用程序 11–18
第 III 部分 库
12. 使用库 12–1
12.1 C 库 12–1
12.2 C++ 编译器提供的库 12–1
12.2.1 C++ 库描述 12–2
12.2.2 访问 C++ 库的手册页 12–3
12.2.3 默认 C++ 库 12–4
12.3 相关的库选项 12–4
12.4 使用类库 12–6
12.4.1 iostream 库 12–6
12.4.2 complex 库 12–7
12.4.3 链接 C++ 库 12–9
12.5 静态链接标准库 12–9
12.6 使用共享库 12–10
12.7 替换 C++ 标准库 12–11
12.7.1 可以替换的内容 12–12
12.7.2 不可以替换的内容 12–12
12.7.3 安装替换库 12–12
12.7.4 使用替换库 12–12
12.7.5 标准头文件实现 12–13
13. 使用 C++ 标准库 13–1
13.1 C++ 标准库头文件 13–2
13.2 C++ 标准库手册页 13–3
13.3 STLport 13–13
13.3.1 重新分发和支持的 STLport 库 13–14
14. 使用传统 iostream 库 14–1
14.1 预定义的 iostream 14–1
14.2 iostream 交互的基本结构 14–2
14.3 使用传统 iostream 库 14–3
14.3.1 使用 iostream 进行输出 14–3
14.3.2 使用 iostream 进行输入 14–6
14.3.3 定义自己的提取运算符 14–7
14.3.4 使用 char* 提取器 14–7
14.3.5 读取任何单一字符 14–8
14.3.6 二进制输入 14–8
14.3.7 查看输入 14–9
14.3.8 提取空白 14–9
14.3.9 处理输入错误 14–9
14.3.10 使用具有 stdio 的 iostream 14–10
14.4 创建 iostream 14–11
14.4.1 处理使用类 fstream 的文件 14–11
14.5 iostream 的赋值 14–14
14.6 格式控制 14–14
14.7 控制器 14–15
14.7.1 使用无格式控制器 14–16
14.7.2 参数化控制器 14–17
14.8 Strstream:数组的 iostream 14–18
14.9 Stdiobuf:stdio 文件的 iostream 14–19
14.10 Streambuf 14–19
14.10.1 和 Streambuf 一起使用 14–19
14.10.2 使用 Streambuf 14–20
14.11 iostream 手册页 14–20
14.12 iostream 术语 14–22
15. 使用复数运算库 15–1
15.1 复数库 15–1
15.1.1 使用复数库 15–2
15.2 类型 complex 15–2
15.2.1 类 complex 的构造函数 15–2
15.2.2 算法运算符 15–3
15.3 数学函数 15–4
15.4 错误处理 15–5
15.5 输入和输出 15–6
15.6 混合模式运算 15–7
15.7 效率 15–7
15.8 复数手册页 15–8
16. 生成库 16–1
16.1 了解库 16–1
16.2 生成静态 (归档)库 16–2
16.3 生成动态 (共享)库 16–2
16.4 生成包含异常的共享库 16–3
16.5 生成专用的库 16–4
16.6 生成公用的库 16–4
16.7 生成具有 C API 的库 16–4
16.8 使用 dlopen 从 C 程序访问 C++ 库 16–5
下载地址:https://www.wenjiangs.com/wp-content/uploads/2025/03/819-4815.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论