以下代码片段在添加-pedantic
和-Werror
有点旧的编译器上生成编译错误。
#include <cstdint>
#include <iostream>
int add(int a, int b){
return a + b;
}; // <-- stray semicolon
int main (){
return 0;
}
然而,较新的编译器版本不会发生这种情况。请在https://godbolt.org/z/KWeb8WTxzgcc
上找到(10.x, 11.x) 和(5.x, 6.x)的矩阵clang
来演示差异。
我的问题有两个部分:
- 为什么在最近的编译器中没有触发这个?
- 是否可以在
clang
或的最新版本中启用旧行为gcc
?