冲突的警告铿锵使用Weverything和C++ 11
问题描述:
与-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
答
不是真的。
即使您已经指定标准为C++ 11,您也明确表示要启用所有警告。
引述商务部:
除了传统的-W标志,可以通过传递-Weverything启用所有 诊断。这与预期的 一起工作 - 错误,还包括来自pedantic的警告。
这对你使用编译什么标准没有影响,-Wc++98-compat-pedantic
明确说“检查我的代码是用C++ 98兼容的”,所以这是它做什么。
Plain'-Weverything'本身不应该用于生产,它可以实现每一个诊断,其中许多您不关心;像'-Wpadded'。 –
@BaummitAugen确实这是对另一个问题的重复。谢谢! – onqtam