如何禁止显示编译器警告 C4373
How to suppress compiler warning C4373
我特别遇到警告 4373 的问题。我希望禁用此特定警告。但是,警告#pragma
不起作用。首先,我尝试在有问题的代码周围使用 disabled,然后抑制,但都没有效果。我还尝试在派生方法和基本方法周围使用 disabled,但也没有效果。如何专门禁止显示此警告?
编辑:有没有办法为某些特定功能禁用此警告,而不是全局?
您可以使用
#pragma
在本地禁止显示警告。
#pragma warning( push )
#pragma warning( disable : 4373 )
// Some code
#pragma warning( pop )
因此,例如,从 MSDN 的 C4373 演示程序开始,下面是一个禁止显示警告的修改版本:
#include <stdio.h>
struct Base
{
virtual void f(int i) {
printf("basen");
}
};
#pragma warning( push )
#pragma warning( disable : 4373 )
struct Derived : Base
{
void f(const int i) { // C4373
printf("derivedn");
}
};
#pragma warning ( pop )
void main()
{
Derived d;
Base* p = &d;
p->f(1);
}
您的项目设置应该能够为您提供帮助。转到项目配置->C/C++->高级,然后在"禁用特定警告"字段中输入 4373。
请注意,此设置仅适用于所选配置,不适用于全局配置。
相关文章:
- 警告处理为错误这里有什么问题
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- cppcheck在const std::string[]上引发警告
- GCC对可能有效的代码抛出init list生存期警告
- 如何在BST的这个简单递归实现中消除警告
- 关于std::move的使用,是否有编译警告
- g++ 在某个类成员未初始化时不发出警告
- 如何处理来自核心指南检查器的关于gsl::at的静态分析警告
- 使用typeid警告未使用的变量
- 示例C++项目编译中的警告
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 如何修复编译器警告 C6386 和 C6385?
- 返回语句后的代码,没有警告
- 获取隐式转换溢出从无符号到已签名的警告
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 在未链接的部分上生成警告
- 警告 C4552:">>":未使用表达式的结果
- 禁止显示由于常量为零而比较始终为假的警告
- C++ 警告:将新创建的 gsl::owner<> 分配给非所有者
- 如何禁止显示编译器警告 C4373