使用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
答案 0 :(得分:3)
不是。
即使您已经指定标准是C ++ 11,您也明确表示要启用所有警告。
引用文档:
除了传统的-W标志之外,还可以启用所有标志 通过传递-Weverything进行诊断。这与预期一致 -Werror,还包括来自-pedantic的警告。
这对您用于编译的标准没有任何影响,-Wc++98-compat-pedantic
显式表示"检查我的代码是否与C ++ 98和#34兼容,以及它的作用。