小编jer*_*rin的帖子

为什么“-pedantic”现代编译器不再检测到杂散分号?

以下代码片段在添加-pedantic-Werror有点旧的编译器上生成编译错误。

#include <cstdint>
#include <iostream>

int add(int a, int b){
    return a + b;
}; // <-- stray semicolon

int main (){
    return 0;
}

Run Code Online (Sandbox Code Playgroud)

然而,较新的编译器版本不会发生这种情况。请在https://godbolt.org/z/KWeb8WTxz上找到 GCC( 10.x11.x )和 Clang(5.x、6.x)的矩阵来演示差异。

我的问题有两个部分:

  1. 为什么在最近的编译器中没有触发这个?
  2. 是否可以在最新版本的 Clang 或 GCC 中启用旧行为?

c++ gcc clang gcc-pedantic

42
推荐指数
1
解决办法
4906
查看次数

标签 统计

c++ ×1

clang ×1

gcc ×1

gcc-pedantic ×1