41得票1回答
为什么现代编译器的`-pedantic`选项不再检测分号错误?

以下代码片段在一些较旧的编译器上添加-pedantic和-Werror时会产生编译错误。 #include <cstdint> #include <iostream> int add(int a, int b){ return a + b; }; // &l...

20得票2回答
在gcc中,-pedantic-errors和-Werror = pedantic之间的区别

在gcc中,使用-pedantic-errors和-Werror=pedantic有什么区别? 根据GCC的文档,两者是有区别的: -pedantic-errors 每当基本标准(参见-Wpedantic)需要诊断时,就会发出错误警告,在某些情况下,编译时存在未定义行为,在其他一些情况下...

14得票2回答
错误:初始化元素在加载时不可计算。

我有一个函数,它接受一个结构体,我正在尝试将其变量存储到数组中:int detect_prm(Param prm) { int prm_arr[] = {prm.field1, prm.field2, prm.field3}; return 0; } 使用 gcc -Wall -an...

11得票3回答
GCC警告函数指针转换为对象指针

显然,在一般情况下,函数指针和对象指针之间的转换是未定义的行为,但 POSIX(参见:dlsym)和 WinAPI(参见:GetProcAddress)要求这样做。 鉴于此,并且考虑到这种代码已针对特定平台API进行了优化,其在函数指针和对象指针不兼容的平台上的可移植性实际上并不重要。 但...

9得票3回答
有哪些非ISO规范的示例未被-pedantic找到?

https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html : 一些用户尝试使用-Wpedantic来检查程序是否符合严格的ISO C标准。他们很快发现它并不完全满足他们的要求:它可以找到一些非ISO惯例,但不是全部,只有那些ISO C 需要...

9得票2回答
C语言 - 控制流到达非void函数的结尾

我正在编写一个多线程程序,而pthread_create方法要求一个void*函数。 我得到了"control reaches end of non-void function"警告,我理解为什么(因为我没有任何官方的返回语句) - 我的问题只是在这种情况下应该返回什么? 只返回NULL是...

8得票2回答
编译时使用-pedantic选项时,带有std::reference_wrapper的构造函数不明确。

我有一个类,既有拷贝构造函数,又有一个接受 std::reference_wrapper 的构造函数: #include <functional> #include <iostream> class Class { public: Class() { ...