所有Gcc版本对C和C++的支持情况(超详细版本)

        在最近接触的新的项目,由于技术使用为C98风格实现,遇到一个问题需要加锁解决,本能反应用lock_gurad+mutex解决,但是没设置CFLAGS为C++11标准,不确定当前gcc编译器默认支持的C和C++标准是什么,索性就一把都研究透彻,方便后面查看和使用。纯手工一个一个查找标准对照的,十分耗时,多谢支持。

1、查看当前GCC的版本

首先要确认自己编译环境当前安装的gcc版本。

通过gcc --version查看,我自己电脑的编译版本如下:

800f8ef34b3af3ff93648a0d87e6f980.png

2、支持版本的对应查找

然后到GCC官网(GCC Releases- GNU Project)查看对应的默认支持版本:

8de6fdf65ba84625463bf98517d1ae70.png

61220242b6c8af48109d838fde32992c.png

b85950a7a9ea1d6ba12e905d75f82ea8.png

ddae2968ad60a9936282b740aa05942e.png

ce33cf9f4ff2dc648d9553dd6dc9db48.png

所以默认支持版本是C17标准

3、GCC所有版本支持C++和C语言情况

版本

发布时间

默认支持C标准

默认支持C++标准

GCC 13.1

April 26, 2023

C17

C++17

GCC 12.2

August 19, 2022

C17

C++17

GCC 10.4

June 28, 2022

C17

C++14

GCC 9.5

May 27, 2022

C17

C++14

GCC 12.1

May 6, 2022

C17

C++14

GCC 11.3

April 21, 2022

C17

C++17

GCC 11.2

July 28, 2021

C17

C++17

GCC 9.4

June 1, 2021

C17

C++14

GCC 8.5

May 14, 2021

C17

C++14

GCC 11.1

April 27, 2021

C17

C++17

GCC 10.3

April 8, 2021

C17

C++14

GCC 10.2

July 23, 2020

C17

C++14

GCC 10.1

May 7, 2020

C17

C++14

GCC 9.3

March 12, 2020

C17

C++14

GCC 8.4

March 4, 2020

C17

C++14

GCC 7.5

November 14, 2019

C11

C++14

GCC 9.2

August 12, 2019

C17

C++14

GCC 9.1

May 3, 2019

C17

C++14

GCC 8.3

February 22, 2019

C17

C++14

GCC 7.4

December 6, 2018

C11

C++14

GCC 6.5

October 26, 2018

C11

C++98

GCC 8.2

July 26, 2018

C17

C++14

GCC 8.1

May 2, 2018

C17

C++14

GCC 7.3

January 25, 2018

C11

C++14

GCC 5.5

October 10, 2017

C11

C++98

GCC 7.2

August 14, 2017

C11

C++14

GCC 6.4

July 4, 2017

C11

C++14

GCC 7.1

May 2, 2017

C11

C++14

GCC 6.3

December 21, 2016

C11

C++14

GCC 6.2

August 22, 2016

C11

C++14

GCC 4.9.4

August 3, 2016

C90

C++98

GCC 5.4

June 3, 2016

C11

C++98

GCC 6.1

April 27, 2016

C11

C++14

GCC 5.3

December 4, 2015

C11

C++98

GCC 5.2

July 16, 2015

C11

C++98

GCC 4.9.3

June 26, 2015

C90

C++98

GCC 4.8.5

June 23, 2015

C90

C++98

GCC 5.1

April 22, 2015

C90

C++98

GCC 4.8.4

December 19, 2014

C90

C++98

GCC 4.9.2

October 30, 2014

C90

C++98

GCC 4.9.1

July 16, 2014

C90

C++98

GCC 4.7.4

June 12, 2014

C90

C++98

GCC 4.8.3

May 22, 2014

C90

C++98

4、GCC对C++版本迭代支持情况

C++版本

GCC版本支持情况

GCC版本

指定版本的命令标志

C++98

完全支持

从GCC6.1之前版本的默认模式

-std=c++98 or std=gnn++98

C++11

完全支持

从GCC4.8.1版本完全支持

-std=c++11 or std=gnu++11

C++14

完全支持

从GCC6.1版本开始完全支持,从6.1-10(包括)的默认模式

-std=c++14 or std=gnu++14

C++17

完全支持

从GCC 5版本开始支持,到GCC 7版本已完全支持,是GCC 11到13版本的默认模式

-std=c++17 or std=gnu++17

C++20

未完全支持

从GCC 8版本开始支持

-std=c++20 or

std=gnu++20(GCC 9以及之前版本使用-std=c++2a)

C++23

未完全支持(标准开发中)

从GCC 11版本开始支持

-std=c++2b or

std=gnu++2b