我正在探索GCC使用该gcc -Q --help=warning语法提供的警告。(有关此内容的更多信息,请参见3.2选项控制输出的种类。)
我想到的是,许多警告(使用GCC版本6.4.1的250中有109个)未分类为C ++。我的意思是,当执行受限查询时,它们不会出现gcc -Q --help=warning,c++。(出于好奇,有81条警告既未分类为C ++也未分类为C。)
但是,至少其中一些警告确实在C ++中起作用。举个例子-Waggregate-return。(在Compiler Explorer上查看)。
在-Waggregate-return默认情况下禁用,我知道这可能是没有多大用处呢(见在问候的-Waggregate回报的目的/行为的混乱呢?)。但是,这只是一个示例,在相同情况下的那些109中也许有一些有用的标志。
那么,为什么有些GCC警告标志不属于C ++语言,但可以在C ++中工作?这是什么规则?