文档信息
前言
第 1 部分C++ 编译器
1. C++ 编译器
2. 使用 C++ 编译器
3. 使用 C++ 编译器选项
第 2 部分编写 C++ 程序
4. 语言扩展
4.1 链接程序作用域
4.1.1 与 Microsoft Windows 兼容
4.2 线程局部存储
4.3 用限制较少的虚函数覆盖
4.4 对 enum 类型和变量进行前向声明
4.5 使用不完整 enum 类型
4.6 将 enum 名称作为作用域限定符
4.7 使用匿名 struct 声明
4.8 传递匿名类实例的地址
4.9 将静态名称空间作用域函数声明为类友元
4.10 将预定义 __func__ 符号用于函数名
4.11 支持的属性
4.11.1 __packed__ 属性详细信息
4.12 对 Intel MMX 和扩展的 x86 平台内部函数的编译器支持
5. 程序组织
6. 创建和使用模板
7. 编译模板
8. 异常处理
9. 改善程序性能
10. 生成多线程程序
第 3 部分库
11. 使用库
12. 使用 C++ 标准库
13. 使用传统 iostream 库
14. 生成库
第 4 部分附录
A. C++ 编译器选项
B. Pragma
词汇表
索引
C++ 标准规定,覆盖虚拟函数在异常中允许的限制不得低于它覆盖的任何函数的限制。该虚函数可能与覆盖的任何函数具有相同或更多的限制。注意,不存在异常规范也允许任何异常。
例如,假定通过指向基类的指针调用函数。如果函数具有异常规范,则可以计算出没有其他正抛出的异常。如果覆盖函数具有限制较少的规范,则不可预料的异常可能会被抛出,这会导致意外的程序行为并且终止程序。
使用 -features=extensions 时,编译器允许覆盖异常规范限制较小的函数。