1 |
代码行以反斜杠结尾,且与下一行连接后生成通用字符名称 |
11-2.2(2) |
2 |
非空源文件未以换行符结尾,或以换行符结尾但换行符之前是反斜杠 |
03-2.1(2) |
3 |
连接预处理符号时产生了通用字符名称 |
11-2.2(4) |
4 |
存在不符合词法的单引号或双引号 |
11-2.5(2) |
5 |
在 #include 指令中,’、”、\、//、/* 出现在定界符 < > 之间,或 ‘、\、//、/* 出现在定界符 “ 之间 |
03-2.8(2) |
6 |
无后缀 10 进制整数字面常量超过 long int 取值范围 |
03-2.13.1(2) |
7 |
使用非标准转义字符 |
03-2.13.2(3) |
8 |
修改字符串字面常量 |
11-2.14.5(12) |
9 |
窄字符串与宽字符串连接 |
03-2.13.4(3) |
10 |
违反 One Definition Rule |
11-3.2(5) |
11 |
具有静态或线程存储期的对象在析构函数中调用 std::exit 函数 |
11-3.6.1(4) |
12 |
函数内具有静态或线程存储期的对象已析构,之后该函数又被调用并引用到已析构的对象 |
11-3.6.3(2) |
13 |
在对象析构之后使用对象 |
11-3.6.3(4) |
14 |
指针指向长度为 0 的内存空间并被解引用 |
11-3.7.4.1(2) |
15 |
内存回收函数抛出异常 |
11-3.7.4.2(3) |
16 |
使用不匹配的方法分配回收资源 |
11-3.7.4.2(3) |
17 |
使用已被释放的指针 |
11-3.7.4.2(4) |
18 |
对象生命周期已结束,但未调用其有副作用的析构函数 |
11-3.8(4) |
19 |
在分配空间后,生命周期开始前,或在生命周期结束后,回收空间前,通过指针访问对象 |
11-3.8(5) |
20 |
在分配空间后,生命周期开始前,或在生命周期结束后,回收空间前,通过 glvalue 访问对象 |
11-3.8(6) |
21 |
具有静态、线程或自动存储期和 non-trivial 析构函数的对象,其空间被非兼容类型的对象占据 |
11-3.8(8) |
22 |
常量对象的空间或曾属于常量对象的空间被其他对象占据 |
11-3.8(9) |
23 |
通过 glvalue 访问对象,但 glvalue 的类型不符合要求 |
11-3.10(10) |
24 |
通过 glvalue 引用不相关类型的对象或未初始化的对象 |
11-4.1(1) |
25 |
浮点类型转换产生的结果无法在相应的空间中表示 |
11-4.8(1) |
26 |
浮点类型转为整数类型时,整数类型无法存储浮点类型的整数部分 |
11-4.9(1) |
27 |
整数类型转为浮点类型时,浮点类型无法存储整数的值 |
11-4.9(2) |
28 |
表达式求值依赖无确定顺序的副作用 |
03-5(4) |
29 |
表达式的结果在数学上没有定义 |
11-5(4) |
30 |
被调用函数的语言链接性与该函数定义的语言链接性不符 |
11-5.2.2(1) |
31 |
将非 POD 对象传入可变参数列表 |
03-5.2.2(7) |
32 |
用 static_cast 将基类引用转为派生类引用,基类为虚基类,或引用的实际对象并非派生类对象 |
11-5.2.9(2) |
33 |
用 static_cast 将基类指针转为派生类指针,基类为虚基类,或指向的实际对象并非派生类对象 |
11-5.2.9(11) |
34 |
用 static_cast 将成员指针转为基类成员指针时,基类中没有相关成员 |
11-5.2.9(12) |
35 |
函数指针被转为不兼容的类型并执行 |
11-5.2.10(6) |
36 |
类型转换时去掉对象 const 属性并修改对象 |
11-5.2.11(7) |
37 |
对不完整类型的对象取地址,但该对象的完整类型重载了 operator & |
11-5.3.1(5) |
38 |
new 运算符第一个数组维度的参数为负数 |
03-5.3.4(6) |
39 |
用 delete 释放数组漏写中括号,用 delete 释放对象多写中括号,用 delete 释放非 new 表达式的结果 |
11-5.3.5(2) |
40 |
被 delete 释放的对象或数组类型不符合要求 |
11-5.3.5(3) |
41 |
用 delete 释放不完整类型的对象,但在对象完整类型声明中有 non-trivial 析构函数 |
11-5.3.5(5) |
42 |
对象解引用成员指针时,对象的动态类型不包含成员指针引用的成员 |
11-5.5(4) |
43 |
对象解引用成员指针时,成员指针为空指针 |
11-5.5(6) |
44 |
/ 或 % 运算符第二个操作数的值为 0 |
11-5.6(4) |
45 |
指针加减整数,结果超出了指针指向数组的地址范围,使指针的值溢出 |
11-5.7(5) |
46 |
未指向同一数组的指针相减 |
11-5.7(5) |
47 |
移位运算符右操作数为负数或超过相关类型比特位的数量 |
11-5.8(1) |
48 |
对有符号整数进行超出取值范围的左移运算 |
11-5.8(2) |
49 |
将对象的值赋给具有部分重叠区域的对象 |
11-5.17(8) |
50 |
有返回值的函数没有通过 return 语句返回 |
11-6.6.3(2) |
51 |
递归地定义和初始化静态对象 |
11-6.7(4) |
52 |
修改非 mutable 常量对象 |
11-7.1.6.1(4) |
53 |
使用没有 volatile 限定的 glvalue 访问有 volatile 限定的对象 |
11-7.1.6.1(6) |
54 |
具有 noreturn 属性的函数返回至调用方 |
11-7.6.3(2) |
55 |
空指针解引用 |
11-8.3.2(5) |
56 |
对象的实际类型与当前静态类型不相关,并调用其非静态成员函数 |
11-9.3.1(2) |
57 |
在构造函数或析构函数中调用纯虚函数 |
11-10.4(6) |
58 |
对象的实际类型与当前静态类型不相关,并调用其析构函数 |
11-12.4(13) |
59 |
在对象生命周期结束后调用其析构函数 |
11-12.4(15) |
60 |
基类对象构造完毕之前调用成员函数 |
11-12.6.2(13) |
61 |
对成员或基类对象的不合理引用 |
11-12.7(1) |
62 |
将对象指针转为其基类对象的指针时,基类对象尚未开始构造或已结束析构 |
11-12.7(3) |
63 |
正在构造或析构的对象通过 . 或 -> 调用虚函数,而且该对象与当前构造或析构函数不属于同一个类或基类 |
11-12.7(4) |
64 |
typeid 作用于正在构造或析构的对象,而且该对象与当前构造或析构函数不属于同一个类或基类 |
11-12.7(5) |
65 |
dynamic_cast 作用于正在构造或析构的对象,而且该对象与当前构造或析构函数不属于同一个类或基类 |
11-12.7(6) |
66 |
对模板函数进行非良构调用,或在模板定义和实例化上下文之外有更好的候选函数匹配 |
11-14.6.4.2(1) |
67 |
需要无限递归的模版实例化 |
11-14.7.1(15) |
68 |
构造或析构函数在 function-try-block 的 handler 中访问非静态成员 |
11-15.2(10) |
69 |
有返回值的函数在 function-try-block 的 handler 中没有正确返回 |
11-15.3(15) |
70 |
在 #if、 #elif 的条件中,由宏展开产生了 defined 表达式,或 defined 表达式格式不正确 |
11-16.1(4) |
71 |
#include 指令经宏展开后不满足标准格式 |
11-16.2(4) |
72 |
宏的实参列表中出现预处理指令 |
11-16.3(11) |
73 |
预处理运算符 # 的结果不是有效的字符串 |
11-16.3.2(2) |
74 |
预处理运算符 ## 的结果不是有效的符号 |
11-16.3.3(3) |
75 |
#line 指定的行号为 0 或大于规定值 |
11-16.4(3) |
76 |
#line 指令不符合标准格式 |
11-16.4(5) |
77 |
用 #define 定义或用 #undef 取消定义具有保留意义的名称 |
11-16.8(4) |
78 |
供语言机制调用的函数不符合要求 |
11-17.3.21 |
79 |
程序实现了应由标准库提供的功能 |
11-17.3.22 |
80 |
未经许可,向 std 命名空间添加声明或定义 |
11-17.6.4.2.1(1) |
81 |
对标准库,特化模板类成员函数,特化模板类成员模板函数,特化、偏特化成员类模版 |
11-17.6.4.2.1(2) |
82 |
未经许可,向 posix 命名空间添加声明或定义 |
11-17.6.4.2.2(1) |
83 |
声明或定义标准库保留名称 |
11-17.6.4.3(2) |
84 |
编译器未提供标准头文件,但编译时引入了非标准同名头文件 |
11-17.6.4.4(1) |
85 |
为标准库函数提供不符合要求的参数 |
11-17.6.4.9(1) |
86 |
多线程调用标准库函数造成数据竞争 |
11-17.6.4.10(1) |
87 |
违反标准库函数要求的前置条件,除非标准库函数声明了这种情况会抛出异常 |
11-17.6.4.11(1) |
88 |
offsetof 用于非 standard layout 类型,或用于计算静态成员以及成员函数的偏移量 |
11-18.2(4) |
89 |
可变参数列表中省略号的前一个形式参数为引用、数组、函数,或具有与默认参数提升后不兼容的类型 |
11-18.10(3) |
90 |
longjmp 跳转使应被执行的析构函数未被执行 |
11-18.10(4) |