不断编译器会不断触发警告?

Xeo*_*Xeo 5 c++ gcc clang compiler-warnings visual-c++

在写完这个问题的答案后,在编译时显示解决方案并出现错误,我想知道是否有可能得到警告并完成编译(正如问题中实际指定的那样).

虽然诊断通常是依赖于编译器的,但对于某些代码来说,很明显会触发错误(例如访问不存在的成员或尝试实例化不完整类型的对象).

但是,警告不能说同样的,因为这些编译器之间的差别很大.即使假设用GCC触发的警告也会被Clang触发是合理的,但对于Visual C++来说也是如此.

问题:
在所有三个提到的编译器中,将始终触发哪些警告(如果有)?

/W3在VC++和-WallGCC&Clang上可以假设.


请注意,这不仅对该问题有用,而且对于触发用户定义消息的警告也很有用.

Pub*_*bby 2

这应该适用于 MSVC、GCC 和 Clang:

#pragma message("hello world")
Run Code Online (Sandbox Code Playgroud)

不是很有用,但仍然有效。

这些也收到了警告:

  • 未使用的变量
  • 未使用的标签
  • 大值,例如 (1 << 128)