compiler-warnings相关内容
我想在CLion中查看所有编译器警告。我不想将它们视为错误,但我想检查所有错误。 我该怎么做? 解决方案 尝试在 CMakeLists.txt 中设置编译器标志: set(CMAKE_CXX_FLAGS“ $ {CMAKE_CXX_FLAGS} -Wall -Wextra”) 相关问题:如何在以下位置启用C ++ 11 CLion?
..
背景 我有时会遇到使用以下虚拟lambda捕获的代码(而不是例如(void)x; , ... foo(int / * x * /)或 ... foo([[maybe_unused]] int x) 在C ++ 17中),以纠正未使用的变量警告: void foo(int x) { [& x] {}(); } 现在,这并不是真正的补救方法,因为它通过了警告Lam
..
我在网络上看到Clang的 -Wformat = 2 选项的无数提及,有时还有众所周知的 -Wformat (Xcode列出为“对 printf / scanf 的Typecheck调用” 这是否有作用吗? 如果它会做什么,如果有的话,它与 -Wformat 有什么不同吗? 同时拥有这两个功能是否有用? 解决方案 ,它与-Wformat有什么不同? 它是从GCC借来的,
..
在 -Wno-四个字符常量上找不到任何文档,但是我怀疑它与 -Wno-multichar类似。我是正确的吗? 解决方案 它们是相关的但不是同一件事。 使用 -Wall --pedantic 标志进行编译,分配: int i ='abc'; 产生: 警告:多字符常量[-Wmultichar] 同时具有GCC和CLANG,而:
..
背景: 请考虑以下示例: #include #include int main(){ std :: vector vectorBool {false,true}; for(const auto& element:vectorBool)std :: cout
..
我发现Clang的文档非常差。我找不到大量可用的Clang警告标志列表。我对C / C ++警告特别感兴趣,但这是一个普遍问题。 GCC在此处列出并描述了警告,还列出了其中包含的内容-Wall和-Wextra: https:// gcc .gnu.org / onlinedocs / gcc / Warning-Options.html#Warning-Options Clang的-
..
最近,我尝试使用 / Wall Visual C ++选项启用所有警告并发现以下代码: typedef BOOL(WINAPI * TIsWow64ProcessFunction)(HANDLE,BOOL *); TIsWow64ProcessFunction isWow64ProcessFunction = reinterpret_cast
..
我的代码如下 package com.foo; 公共类TestComposition { public static void main(String [] args){ try { Class fooClass = (Class)Class.forName(“ Foo”); } catch(ClassNotFoundException e){ e
..
我一直在将C ++类型安全的伪枚举的可怕混乱重构为新的C ++ 0x类型安全的枚举,因为它们的可读性更高。无论如何,我在导出的类中使用了它们,因此我将它们明确标记为要导出: 枚举类__attribute __((visibility(“默认值”)))MyEnum:unsigned int { 一个= 1, 两个= 2 }; 使用g ++编译会产生以下警告:
..
我目前正在使用Bjarne Stroustrup的书(第二版)自学C ++。在其中一个示例中,他使用范围循环来读取向量中的元素。当我为自己编写和编译代码时,会收到此警告。当我运行代码时,它似乎正在工作并计算平均值。为什么收到此警告,我应该忽略它吗?另外,为什么在示例中使用int而不是double的range-却返回double? temp_vector.cpp :17:13:警告:基于范围
..
请考虑以下示例: #include #include int main() { std :: string str =“ abcde4fghijk4l5mnopqrs6t8uvwxyz”; std :: string str2; std :: remove_copy_if(str.begin(),str.end(),
..
使用少于元素数量的初始化程序初始化数组(在C ++中,但是任何适用于C的解决方案也可能在这里工作)完全合法: int数组[10] = {1,2,3}; 但是,这可能是晦涩的bug的来源。有没有办法让编译器(gcc)检查一个特定数组的初始化程序数量,并在声明且实际大小不匹配时发出警告甚至错误? 我知道我可以使用 int array [] = {1,2,3}; 然后
..
我有一个没有默认构造函数的类,我创建了一个变量而没有错误给出参数,但是我遇到了一个链接器错误,而不是一个不错的编译器错误,我无法 最后,我设法找到了导致该问题的代码,直到那时我才注意到警告: C ++:警告:C4930:未调用原型函数(是否打算使用变量定义?) 当我从以下位置更改代码时,很奇怪: MyClass foo(); 到
..
我正在尝试使用long 类型变量转换为 int 类型变量/en.cppreference.com/w/cpp/language/list_initialization“ rel =” nofollow noreferrer“> 统一初始化 ,并且没有它。但是我只有在统一初始化时才收到编译器警告。这是为什么?为什么在两种情况下 gcc 都不发出警告?我也尝试过使用 clang 并获得类似的结果。
..
在C ++中,有时会定义一个变量,但不会使用。这是一个示例-与 COM_INTERFACE_ENTRY_FUNC_BLIND ATL宏: HRESULT WINAPI blindQuery(void * / * currentObject * /,REFIID iid,void ** ppv,DWORD_PTR / * param * /) { DEBUG_LOG(__FUNCTION
..
我想使用一组全局标志来编译项目,这意味着我在顶层CMakeLists.txt文件中指定了以下内容: ADD_DEFINITIONS(-Wall -Weffc ++ -pedantic -std = c ++ 0x) 但是,对于子目录中的特定文件(例如“ foo.cpp”),我想将 编译标志切换为不应用-Weffc ++(包括我无法更改的商业库)。为了简化只使用-Wall的情
..
经常使用的语句,例如(void)x; 可以禁止显示有关未使用变量 x 的警告。但是,如果我尝试编译以下内容,则会得到一些我不太了解的结果: int main() { int x; (short)x; (void)x; (int)x; } 使用g ++进行编译,会收到以下警告: $ g ++ test.cpp -Wall -Wextra -o test
..
我们只是被错字弄糊涂了:" constexpr bool maxDistance = 10000; " gcc和clang都在没有警告的情况下进行了编译. 这里真正的错误是该变量不应该是bool类型,而应该是一个整数类型. 我们如何确保将来收到编译器警告? #include constexpr bool number = 1234; int main
..
我正在尝试制作一个编译器,现在正在尝试制作解析器. 我收到此状态的警告: 状态89 62 expr: '(' expr . ')' 66 | expr . '+' expr 67 | expr . '-' expr 68 | expr . '*' expr 69 | expr . '/' expr 70 | expr
..
Autoconf的AC_COMPILE_IFELSE在不同的编译器(例如Sun的C ++编译器和IBM的xlC编译器)下误判了我们的功能. AC_COMPILE_IFELSE似乎可以检查返回值,但是某些编译器不会费心设置它或将其设置为意外值.稍后,我们将使用不可用的选项. 在非Autoconf构建脚本中,我使用"fatal|error|illegal|unrecognized|not fou
..