在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]
这是诊断错误吗?(c++ 11模式下-Wc++98-compat-pedantic
包含在-Weverything
中)
复制到这里
不尽然。
即使你已经指定了标准是c++ 11,你也明确地说你想要启用所有警告。
引用文档:
除了传统的-W标志,还可以启用所有标志通过传递诊断-一切。这可以像预期的那样工作-Werror,还包括来自-pedantic的警告。
这对你使用什么标准来编译没有影响,-Wc++98-compat-pedantic
显式地说"检查我的代码是否与c++ 98兼容",所以这就是它的作用。