compiler-warnings相关内容

英特尔C++编译器和Wnon-Virtual-dtor标志提供(错误?)警告

我正在尝试编译我的一些代码,这些代码在g++(使用--Wnon-虚dtor标志)中编译得很好。此外,我的IDE和clang-tidy没有警告我(我当然知道这可能是假的)。 当我尝试用Intel的icpc编译相同的代码(实际上是这个icpc (ICC) 19.1.2.254 20200623)时,我收到了一个警告,现在我可以追踪到它--我想知道是我有什么错,还是这个警告在我的情况下实际上是不正 ..
发布时间:2022-08-29 13:33:05 C/C++开发

编译器是否应该对在派生类中隐藏的基结构的成员变量发出警告?

我意外地跟踪了基结构派生的类中具有私有成员的(基)结构的某些成员变量。 结构库{ Int a; ) 派生的类:公共基础{ 私有: Int a; ... 在我的情况下,这是一个错误,导致了一个偷偷摸摸的错误(幸运的是在测试时被发现)。 由于我认为故意跟踪成员是非常罕见的(如果根本不被认为是糟糕的做法),我想知道为什么编译器没有发出至少一个警告(好的,不是错误,因为跟踪是法律 ..
发布时间:2022-08-29 12:58:57 C/C++开发

推荐-使用GCC构建C++的W标志

我正在寻找针对C++推荐的g++警告选项列表,但只找到了以下内容:Recommended gcc warning options for C和Useful GCC flags for C,它们都是C语言特有的 -WALL和-WExtra启用GCC可以生成的大部分(但不是全部)警告。 哪些警告不是由这些选项启用的,尤其是在编译C++时? 推荐答案 -Wall -Wextra往 ..
发布时间:2022-08-29 12:51:51 C/C++开发

用于检查整数溢出的编译器标志

在下面的程序中,如果算术表达式出现问题,我们如何让编译器发出警告/错误。 如果算术表达式产生的值超过其类型的最大值,我希望编译器发出警告/错误。 我用gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4)编译了下面的程序,使用的编译命令是gcc int_promo_flags.c -Wall -Wextra 我期待来自第long long int y ..

GCC告诫未使用的静态函数,但不是静态内联:有实际区别吗?

我的GCC版本(5.4)警告未使用的static函数,即使在使用-Wall时在头文件中也是如此。如果定义了相同的函数static inline或简单地定义了inline,则不会出现错误。 例如,文件中的以下函数unused.h: static void foo() {} .包括在test.cpp文件中时,如下所示: #include "unused.h" 使用-Wall编 ..
发布时间:2022-08-29 12:23:36 C/C++开发

如何为几行代码禁用 GCC 警告

在 Visual C++ 中,可以使用 #pragma 警告(禁用: ...).我还发现在 GCC 中你可以 覆盖每个文件编译器标志.如何为“下一行"或使用 GCC 的代码区域周围的推送/弹出语义执行此操作? 解决方案 好像是这个可以做到.我无法确定它添加的 GCC 版本,但它是在 2010 年 6 月之前的某个时间. 这是一个例子: #pragma GCC 诊断错误“-Wunin ..
发布时间:2022-01-31 09:55:17 其他开发

scoped_lock 如何避免发出“未使用的变量"?警告?

boost::mutex::scoped_lock 是一个方便的 RAII 包装器,用于锁定互斥锁.我对其他事情使用了类似的技术:一个 RAII 包装器,它要求数据接口从/重新连接到串行设备. 但是,我想不通的是为什么在下面的代码中只有我的对象 mst —其实例化和销毁确实有副作用 —导致 g++ 发出“未使用变量"警告错误,而 l 设法保持沉默. 你知道吗?你能告诉我吗? [gen ..
发布时间:2022-01-23 21:09:15 C/C++开发

理解-Weffc++

考虑以下程序: #include 结构 S {S (){}私人的:无效 *ptr = nullptr;std::string str = "";};int main(){} 当在 GCC 4.7.1 上使用 -Weffc++ 编译时,会吐出: 警告:“结构 S"具有指针数据成员 [-Weffc++]警告:但不会覆盖 'S(const S&)' [-Weffc++]警告:或 ' ..
发布时间:2022-01-23 20:27:06 C/C++开发

为什么要按照声明的顺序初始化成员变量?

我今天写了一些代码,得到一个奇怪的编译错误,这似乎是由于初始化成员变量的顺序与声明的顺序不同. 例子: 类测试{诠释一个;诠释 b;上市:测试():b(1),a(2){}};int main() {测试一下;返回0;} 如果我用 -Werror -Wall 编译它: $ g++ -Werror -Wall test.cpptest.cpp:在构造函数“Test::Test()"中:te ..
发布时间:2022-01-23 20:25:48 C/C++开发