c++ - 使用 Weverything 和 C++11 时出现与 clang 冲突的警告

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

<分区>

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

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

我收到以下警告:

警告:'long long' 与 C++98 不兼容 [-Wc++98-compat-pedantic]

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

转载here

最佳答案

不是真的。

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

引用文档:

In addition to the traditional -W flags, one can enable all diagnostics by passing -Weverything. This works as expected with -Werror, and also includes the warnings from -pedantic.

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

关于c++ - 使用 Weverything 和 C++11 时出现与 clang 冲突的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39959058/

相关文章:

c++ - 托管 DirectX 作为起点

c++ - 用计算值初始化 2D std::array 的最快和最简洁的方法

带有继承的 C++11 代码不能用 clang 编译

c++ - XCode 4 中有哪些版本的 gcc、llvm 和 clang?

Clang 链接器问题(从源代码到 gcc-snapshot)

vector - 在对象 vector 上使用 find_if

c++ - 调用 vector.empty() 时出现 EX_BAD_ACCESS

c++ - 我应该将像素的 rgb 值视为一个值吗?

c++ - 如何将具有派生参数的函数转换为具有基本参数的函数?

c++ - 使用 std::map 和自定义类作为其值的编译器错误 C2664