在不同编译器之间一致触发的警告
Warnings that will consistently get triggered across different compilers?
在编写了这个问题的答案并在编译时显示错误的解决方案后,我想知道是否有可能收到警告并完成编译(如问题中实际指定的那样(。
虽然诊断通常依赖于编译器,但对于某些代码来说,很明显会触发错误(例如访问不存在的成员或尝试实例化不完整类型的对象(。
但是,警告不能这样说,因为这些警告在编译器之间往往有很大差异。尽管可以合理地假设使用 GCC 触发的警告也会由 Clang 触发,但对于视觉C++来说却并非如此。
问题:
哪些警告(如果有(会在所有提到的三个编译器上持续触发?
可以假设VC++/W3
和GCC和Clang -Wall
。
请注意,这不仅对该问题有用,而且对于触发用户定义的消息的警告也很有用。
这应该适用于MSVC,GCC和Clang:
#pragma message("hello world")
不是很有用,但仍然有效。
这些也收到了警告:
- 未使用的变量
- 未使用的标签
- 大值,例如 (1 <<128(
相关文章:
- 如何修复编译器警告 C6386 和 C6385?
- 编译器警告:执行到达值返回函数的末尾而不返回值
- 为什么布尔开关语句有编译器警告?
- 奇怪的缩小转换在 g++ 编译器中加倍到浮点警告
- 处理编译器关于可能丢失数据的警告的最优雅方法是什么
- 使用 reverse_iterator 而不是const_reverse_iterator并获得讨厌的编译器警告和错误
- 添加 c++11 编译器后打开 devc++ 时显示的警告
- 来自 std::chrono 的编译器警告,但未被使用
- 警告级别为 3 的 int 的 std::vector push_back 处的编译器警告
- G++ 编译器未为未定义的方法生成错误/警告
- 从 int 中剥离位时,编译器会警告一个转换,但不警告其他转换.有解决方法吗?
- 有没有办法在从临时返回按值string_view时获得编译器警告?
- 常量更改而不const_cast<> 为什么没有编译器警告/错误?
- 为什么编译器不在同一翻译单元中警告 ODR 违规
- C++语法错误,编译器不会警告或 int v = func(&v) 出错;
- C++ 添加编译器警告,以错误使用自定义打印/日志功能
- 我正在尝试在我的类中创建一个静态成员,但编译器警告我它是未定义的
- 是否可以将移动的变量标记为不再可用,并在使用它时收到编译器警告?
- 为什么我应该始终启用编译器警告
- 使用Boost :: black在boost :: variant中使用时,请警告编译器