compiler-warnings相关内容

如何在CLion中启用所有编译器警告?

我想在CLion中查看所有编译器警告。我不想将它们视为错误,但我想检查所有错误。 我该怎么做? 解决方案 尝试在 CMakeLists.txt 中设置编译器标志: set(CMAKE_CXX_FLAGS“ $ {CMAKE_CXX_FLAGS} -Wall -Wextra”) 相关问题:如何在以下位置启用C ++ 11 CLion? ..
发布时间:2020-10-02 19:10:40 C/C++开发

是否/正在为GCC开发“ clang ++:-Wunused-lambda-capture”等效警告?

背景 我有时会遇到使用以下虚拟lambda捕获的代码(而不是例如(void)x; , ... foo(int / * x * /)或 ... foo([[maybe_unused]] int x) 在C ++ 17中),以纠正未使用的变量警告: void foo(int x) { [& x] {}(); } 现在,这并不是真正的补救方法,因为它通过了警告Lam ..
发布时间:2020-10-01 23:06:30 C/C++开发

-Wformat = 2做什么?

我在网络上看到Clang的 -Wformat = 2 选项的无数提及,有时还有众所周知的 -Wformat (Xcode列出为“对 printf / scanf 的Typecheck调用” 这是否有作用吗? 如果它会做什么,如果有的话,它与 -Wformat 有什么不同吗? 同时拥有这两个功能是否有用? 解决方案 ,它与-Wformat有什么不同? 它是从GCC借来的, ..

Clang的-Wall和-Wextra中包含哪些警告?

我发现Clang的文档非常差。我找不到大量可用的Clang警告标志列表。我对C / C ++警告特别感兴趣,但这是一个普遍问题。 GCC在此处列出并描述了警告,还列出了其中包含的内容-Wall和-Wextra: https:// gcc .gnu.org / onlinedocs / gcc / Warning-Options.html#Warning-Options Clang的- ..
发布时间:2020-10-01 22:13:23 C/C++开发

g ++ C ++ 0x枚举类编译器警告

我一直在将C ++类型安全的伪枚举的可怕混乱重构为新的C ++ 0x类型安全的枚举,因为它们的可读性更高。无论如何,我在导出的类中使用了它们,因此我将它们明确标记为要导出: 枚举类__attribute __((visibility(“默认值”)))MyEnum:unsigned int { 一个= 1, 两个= 2 }; 使用g ++编译会产生以下警告: ..
发布时间:2020-09-27 22:44:11 C/C++开发

为什么在C ++中针对基于范围的for循环收到警告?

我目前正在使用Bjarne Stroustrup的书(第二版)自学C ++。在其中一个示例中,他使用范围循环来读取向量中的元素。当我为自己编写和编译代码时,会收到此警告。当我运行代码时,它似乎正在工作并计算平均值。为什么收到此警告,我应该忽略它吗?另外,为什么在示例中使用int而不是double的range-却返回double? temp_vector.cpp :17:13:警告:基于范围 ..
发布时间:2020-09-27 21:13:04 C/C++开发

让编译器检查数组初始化程序的数量

使用少于元素数量的初始化程序初始化数组(在C ++中,但是任何适用于C的解决方案也可能在这里工作)完全合法: int数组[10] = {1,2,3}; 但是,这可能是晦涩的bug的来源。有没有办法让编译器(gcc)检查一个特定数组的初始化程序数量,并在声明且实际大小不匹配时发出警告甚至错误? 我知道我可以使用 int array [] = {1,2,3}; 然后 ..
发布时间:2020-09-27 03:18:46 C/C++开发

C ++:警告:C4930:未调用原型函数(是否要使用变量定义?)

我有一个没有默认构造函数的类,我创建了一个变量而没有错误给出参数,但是我遇到了一个链接器错误,而不是一个不错的编译器错误,我无法 最后,我设法找到了导致该问题的代码,直到那时我才注意到警告: C ++:警告:C4930:未调用原型函数(是否打算使用变量定义?) 当我从以下位置更改代码时,很奇怪: MyClass foo(); 到 ..
发布时间:2020-09-27 01:18:54 C/C++开发

为什么gcc警告仅缩小统一初始化的转换范围?

我正在尝试使用long 类型变量转换为 int 类型变量/en.cppreference.com/w/cpp/language/list_initialization“ rel =” nofollow noreferrer“> 统一初始化 ,并且没有它。但是我只有在统一初始化时才收到编译器警告。这是为什么?为什么在两种情况下 gcc 都不发出警告?我也尝试过使用 clang 并获得类似的结果。 ..

覆盖单个文件的编译标志

我想使用一组全局标志来编译项目,这意味着我在顶层CMakeLists.txt文件中指定了以下内容: ADD_DEFINITIONS(-Wall -Weffc ++ -pedantic -std = c ++ 0x) 但是,对于子目录中的特定文件(例如“ foo.cpp”),我想将 编译标志切换为不应用-Weffc ++(包括我无法更改的商业库)。为了简化只使用-Wall的情 ..
发布时间:2020-09-26 21:50:17 C/C++开发

更强大的AC_COMPILE_IFELSE功能测试?

Autoconf的AC_COMPILE_IFELSE在不同的编译器(例如Sun的C ++编译器和IBM的xlC编译器)下误判了我们的功能. AC_COMPILE_IFELSE似乎可以检查返回值,但是某些编译器不会费心设置它或将其设置为意外值.稍后,我们将使用不可用的选项. 在非Autoconf构建脚本中,我使用"fatal|error|illegal|unrecognized|not fou ..
发布时间:2020-09-14 05:32:17 C/C++开发