使用 Weverything 和 C++11 时与 clang 冲突的警告 [重复]

Posted

技术标签:

【中文标题】使用 Weverything 和 C++11 时与 clang 冲突的警告 [重复]【英文标题】:conflicting warnings with clang when using Weverything and C++11 [duplicate] 【发布时间】:2016-10-10 13:08:26 【问题描述】:

当使用带有-Weverything -std=c++11的clang 3.8编译以下代码时:

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 包含在 C++11 模式下的-Weverything 中)

转载here

【问题讨论】:

Plain -Weverything 不应该单独用于生产,它可以实现几乎所有的诊断,其中许多你并不关心;喜欢-Wpadded @BaummitAugen 确实这是另一个问题的重复。谢谢! 【参考方案1】:

不是真的。

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

引用文档:

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

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

【讨论】:

以上是关于使用 Weverything 和 C++11 时与 clang 冲突的警告 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

这个 C 代码怎么会有 lambda

scanf 时与 char 数组混淆

(Rcpp)armadillos abs() 函数在 std::abs 工作时与 c++ double 一起使用时输出错误值

关于VM虚拟机在使用网络时与锐捷网络冲突的解决问题

编译时与 Boost.python 链接错误

ABP 框架 4.4.3 包 IdentityServer4 4.1.1 在部署时与 net50 不兼容