使用Weverything和C ++ 11时与clang的冲突警告

时间:2016-10-10 13:08:27

标签: c++ c++11 clang compiler-warnings

使用clang 3.8和-Weverything -std=c++11编译以下代码时:

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

我收到以下警告:

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

这是一个诊断错误吗? (-Wc++98-compat-pedantic包含在{+ 1}}中的C ++ 11模式中)

重现here

1 个答案:

答案 0 :(得分:3)

不是。

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

引用文档:

  

除了传统的-W标志之外,还可以启用所有标志   通过传递-Weverything进行诊断。这与预期一致   -Werror,还包括来自-pedantic的警告。

这对您用于编译的标准没有任何影响,-Wc++98-compat-pedantic 显式表示"检查我的代码是否与C ++ 98和#34兼容,以及它的作用。