|
|
1
270
put it in "
或者,
|
|
2
84
|
|
|
3
34
|
|
|
4
29
C++17更新它被覆盖在 [dcl.attr.unused]
clang和gcc都使用以下命令生成诊断 -墙-韦克斯特拉 对两者 酒吧 未使用的工具 ( See it live ). 使诊断静音:
C++17之前
在C++11中
给定以下示例,应该优化lambda表达式的立即调用:
我们可以看到 godbolt
|
|
|
5
23
|
|
|
6
22
一种更简洁的方法是注释掉变量名:
|
|
|
7
21
gcc
|
|
|
8
16
|
|
|
9
11
一个或多个 未使用的参数:
|
|
|
10
7
|
|
|
11
6
在充分尊重C++17的前提下 C++ Core Guidelines |
|
|
12
4
在大多数情况下,使用预处理器指令被认为是邪恶的。理想情况下,你想像害虫一样避开它们。记住,让编译器理解你的代码很容易,让其他程序员理解你的程序要困难得多。这里和那里有几十个这样的案例,以后很难为自己或现在的其他人阅读。 一种方法可能是将参数组合到某种参数类中。然后,您可以只使用变量的一个子集(相当于实际分配0),或者为每个平台对该参数类进行不同的专门化。然而,这可能不值得,你需要分析它是否合适。
|
|
|
13
2
首先,警告是由源文件中的变量定义而不是头文件生成的。头部可以保持原始并且应该保持原始,因为您可能正在使用类似doxygen的东西来生成API-文档。
例子:
这可能看起来很神秘,所以定义了一个类似于“未使用”的宏。MFC的做法是:
这样,您在调试版本中仍然可以看到警告,这可能会有所帮助。 |
|
|
14
2
|
|
|
15
2
在WinNT.h。 |
|
|
16
1
使用编译器的标志,例如GCC的标志:
|
|
|
17
1
在C++11中,这是我使用的解决方案:
如果额外的代码是一个问题,您可以使用此声明:
但此时,宏提供了更好的可读性:
|
|
|
18
0
这很有效,但需要 C++11
|
|
|
19
-12
我发现大多数给出的答案只适用于局部未使用的变量,并会导致未使用的静态全局变量的编译错误。
这是有效的,因为匿名命名空间中的非静态全局变量不会报告任何警告。 C++11是必需的
|
|
|
KPM · PHP和MySQL更改登录用户密码表单,不更新密码 8 年前 |
|
|
ISemsem · 如何在发出警告时中止python脚本 8 年前 |
|
|
Reilly Ford · 对警告感到困惑 8 年前 |
|
|
David Kramf · Swift警告信息不清楚 8 年前 |
|
|
Ed Mozley · 捕获powershell警告 8 年前 |