2016-10-10 108 views
1

-Weverything -std=c++11编译铿锵3.8下面的代码时,当:冲突的警告铿锵使用Weverything和C++ 11

static void foo(long long) {} 
int main() { foo(0ll); } 

我得到以下警告:

warning: 'long long' is incompatible with C++98 [-Wc++98-compat-pedantic]

这是诊断错误? (包含在-Weverything-Wc++98-compat-pedantic在C++ 11模式)

重现它here

+0

Plain'-Weverything'本身不应该用于生产,它可以实现每一个诊断,其中许多您不关心;像'-Wpadded'。 –

+0

@BaummitAugen确实这是对另一个问题的重复。谢谢! – onqtam

回答

3

不是真的。

即使您已经指定标准为C++ 11,您也明确表示要启用所有警告。

引述商务部:

除了传统的-W标志,可以通过传递-Weverything启用所有 诊断。这与预期的 一起工作 - 错误,还包括来自pedantic的警告。

这对你使用编译什么标准没有影响,-Wc++98-compat-pedantic明确说“检查我的代码是用C++ 98兼容的”,所以这是它做什么。