c++ 编译器支持情况表

下表为各个编译器对新的 C++ 功能特性的支持情况。这些功能特性包括 C++11 、 C++14 、 C++17 和之后接受的标准版本 (C++20/C++2a) ,还有几个技术规范的内容。

 

C++2a 功能特性

注意,此列表可能根据 C++2a 标准草案的演化而更改。

C++2a 核心语言功能特性

C++2a 功能特性
 
提案
 

GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

IBM XLC++

Sun/Oracle C++

Embarcadero C++ Builder

Cray

Portland Group (PGI)

Nvidia nvcc

 [折叠
允许 lambda 捕获 [=, this]P0409R28619.22*

10.0.0*

5.1       
__VA_OPT__P0306R4
P1042R1
8 (部分)*9 

10.0.0*

5.1      

 

指派初始化器P0329R44.7 (部分)*
8
3.0 (部分)*19.21* 5.1      

 

泛型 lambda 的模板形参列表P0428R28919.22* 5.1      

 

位域的默认成员初始化器P0683R186 

10.0.0*

5.1      

 

类模板实参推导中的 initializer_list 构造函数P0702R18619.14* 5.0      

 

const& 限定的成员指针P0704R18619.0*

10.0.0*

5.1      

 

概念 (Concepts)P0734R06
(仅 TS)
 19.23*         
不求值语境中的 lambdaP0315R49          

 

三路比较运算符P0515R3 8 (部分)*19.20* 5.1      

 

简化隐式 lambda 捕获P0588R18   5.1      

 

基于范围的 for 的初始化语句P0614R198 

11.0.0*

       

 

可默认构造且可赋值的无状态 lambdaP0624R29819.22* 5.1      

 

与预置的复制构造函数的 const 不匹配P0641R29819.21* (partial) 5.1      

 

特化上的访问检查P0692R18 (部分)*  5.1      

 

ADL 与不可见的函数模板P0846R09919.21* 5.1      

 

令 constexpr 函数的实例化较不贪婪P0859R05.2 (部分)*
9
           
属性 [[likely]] 与 [[unlikely]]P0479R59   5.1      

 

使 typename 更可选P0634R39   5.1      

 

Lambda 初始化捕获中的包展开P0780R29919.22*        

 

属性 [[no_unique_address]]P0840R299  5.1      

 

DR :放松结构化绑定定制点寻找规则P0961R18819.21*

10.0.0*

5.1      

 

DR :放松范围 for 循环定制点寻找规则P0962R18   5.1      

 

DR :允许到可访问成员的结构化绑定P0969R08819.21*

10.0.0*

5.1      

 

销毁的 operator deleteP0722R396 

10.0.0*

       

 

非类型模板形参中的类类型P0732R29          

 

弃用经由 [=] 隐式捕获 thisP0806R29 19.22* 5.1      

 

explicit(bool)P0892R29919.22* 5.1      

 

整合功能特性测试宏P0941R253.419.15* (部分)
19.20*
 5.0      

 

禁止聚合体有用户声明的构造函数P1008R19819.20*

10.0.0*

5.1      

 

constexpr 虚函数P1064R099  5.1      

 

比较的一致性改进P1120R0 8 (部分)19.22* 5.1       
char8_tP0482R69719.22* 5.1      

 

std::is_constant_evaluated()P0595R299  5.1      

 

constexpr try-catch 代码块P1002R198 

10.0.0*

5.1      

 

立即函数P1073R3    5.1      

 

嵌套内联命名空间P1094R298  5.1      

 

有制约声明仍有另一种手段P1141R2           

 

Signed integers are two's complementP1236R199         

 

constexpr 的 dynamic_cast 和多态 typeidP1327R1 9  5.1      

 

在 constexpr 中改变联合体的活跃成员P1330R09919.10* 5.1       
协程 (coroutine)P0912R5 8 (部分)  5.1      

 

使用括号的聚合体初始化P0960R3    5.1      

 

DR : new 表达式中的数组大小推导P1009R2 9  5.1      

 

模块 (module)P1103R3 8 (部分)         

 

更强的 Unicode 要求P1041R4
P1139R2
   N/A      

 

<=> != ==P1185R2  19.22* 5.1      

 

DR: Explicitly defaulted functions with different exception specificationsP1286R2 9  5.1      

 

结构化绑定的 lambda 捕获与存储类说明符P1091R3
P1381R1
108 (部分)  5.1      

 

Permit conversions to arrays of unknown boundP0388R4    5.2      

 

More constexpr containersP0784R7    5.2      

 

Deprecating some uses of volatileP1152R4    5.2      

 

Deprecate comma operator in subscriptsP1161R3109  5.2      

 

[[nodiscard]] with messageP1301R4 9  5.2      

 

Unevaluated asm-declaration in constexpr functionsP1668R110          

 

DR: [[nodiscard]] for constructorsP1771R1    5.2      

 

DR: Implicit move for more local objects and rvalue referencesP1825R0    5.2       
C++2a 功能特性
 
提案
 

GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

IBM XLC++

Sun/Oracle C++

Embarcadero C++ Builder

Cray

Portland Group (PGI)

Nvidia nvcc

C++2a 库功能特性

C++2a 功能特性
 
提案
 

GCC libstdc++

Clang libc++

MSVC
标准库

Apple Clang

Sun/Oracle C++
标准库

Embarcadero C++ Builder
标准库

Cray C++
标准库

 [折叠
std::endianP0463R18719.22*   

 

std::remove_cvrefP0550R29619.20*   

 

扩展 std::make_shared() 以支持数组P0674R1       
原子性浮点算术P0020R6  19.22*   

 

同步缓冲的输出流P0053R7      

 

<algorithm> 与 <utility> 的 constexprP0202R3 8    

 

<complex> 的更多 constexprP0415R197 (部分)    

 

令 std::memory_order 为有作用域枚举P0439R099    

 

字符串前缀与后缀检查P0457R29619.21*   

 

operator<=> 的库支持 <compare>P0515R3 719.20* (部分)   

 

标准库中的 [[nodiscard]]P0600R197 (部分)19.13* (部分)   

 

转换指针为裸指针的工具P0653R28619.22*   

 

原子性的 std::shared_ptr 与 std::weak_ptrP0718R2       
std::spanP0122R7 7    

 

日历时区P0355R7 7 (部分)    

 

<version>P0754R29719.22*   

 

比较无序容器P0809R0  16.0*   

 

常量表达式迭代器 (ConstexprIterator) 要求P0858R0  19.11*   

 

std::basic_string::reserve() 不应收缩P0966R1 8     
std::atomic_refP0019R8      

 

关联容器的 contains() 成员函数P0458R29 19.21*   

 

DR :逐片构造的受保证复制消除P0475R19     

 

std::bit_cast()P0476R2      

 

整数的 2 的幂的运算P0556R39     

 

改进仿 erase 算法的返回值P0646R19 19.21*   

 

std::destroying_deleteP0722R39     

 

std::is_nothrow_convertibleP0758R199    

 

添加 shift 到 <algorithm>P0769R2  19.21*   

 

std::type_identityP0887R19819.21*   

 

概念库P0898R3      

 

std::array 的 constexpr 比较运算P1023R0 8     
std::unwrap_ref_decay 与 std::unwrap_referenceP0318R19819.21*   

 

std::bind_front()P0356R59     

 

不完整类型的 std::reference_wrapperP0357R398    

 

修正 operator>>(basic_istream&, CharT*)P0487R1 819.23*   

 

char8_t 的库支持P0482R69 19.22*   

 

实现使用分配器构造工具函数P0591R49     

 

DR : std::variant 与 std::optional 应传播复制/移动平凡性P0602R48.3819.11*   

 

理智的 std::variant 转换构造函数P0608R310     

 

std::function 的移动构造函数应为 noexceptP0771R17.2619.22*   

 

单一范围提案P0896R4      

 

<chrono> 的 zero() 、 min() 及 max() 应为 noexceptP0972R09819.14*   

 

std::pointer_traits 中的 constexprP1006R198    

 

std::assume_aligned()P1007R39     

 

移除 std::span 的比较运算符P1085R2 8    

 

使 operator+(basic_string) 的有状态分配器传播更加一致P1165R110     

 

一致的容器擦除P1209R098     
std::lerp() 与 std::midpoint()P0811R399    

 

std::span 的实用性增强P1024R3 9    

 

DR :使 create_directory() 自发P1164R18.3 19.20*   

 

std::ssize() 与 std::span 的无符号长度P1227R2 9    

 

有界无界数组的表征P1357R099     
C++2a 功能特性
 
提案
 

GCC libstdc++

Clang libc++

MSVC
标准库

Apple Clang

Sun/Oracle C++
标准库

Embarcadero C++ Builder
标准库

Cray C++
标准库

 

C++17 功能特性

C++17 核心语言功能特性

C++17 功能特性
 
提案
 

GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

IBM XLC++

Sun/Oracle C++

Embarcadero C++ Builder

Cray

Portland Group (PGI)

Nvidia nvcc

 [折叠
直接列表初始化的新 auto 规则N392253.819.0* 4.10.117.0  10.3 17.7 
无消息的 static_assertN392862.519.10* 4.1218.0  10.3 17.7 
模板模板形参中的 typenameN405153.519.0* 4.10.117.0  10.3 17.7 
移除三标符N408653.516.0* 5.019.0.1  10.3   
嵌套命名空间定义N423063.619.0* 4.1217.0  10.3 17.7 
命名空间和枚举项的属性N42664.9 (部分)*
6
3.619.0* 4.1117.0  10.3 17.7 
u8 字符字面量N426763.619.0* 4.1117.0  10.3 17.7 
允许所有非类型模板实参的常量求值N426863.619.12* 5.019.0.1  10.3   
折叠表达式N429563.619.12* 4.1419.0  10.3 18.1 
一元折叠表达式和空形参包P0036R063.919.12* 4.14   10.3   
移除 register 关键字的已弃用用法P0001R173.819.11* 4.1318.0  10.3 17.7 
移除已弃用的 operator++(bool)P0002R173.819.11* 4.1318.0  10.3 17.7 
令异常规定为类型系统的一部分P0012R17419.12* 4.1419.0  10.3   
有基类的类的聚合初始化P0017R173.919.14* 5.019.0.1  10.3   
预处理器条件中的 __has_includeP0061R1519.11* 4.1318.0  10.3 17.7 
DR :继承构造函数的新规定 (DR1941 等)P0136R173.919.14*     10.3   
*this 的 lambda 捕获P0018R373.919.11* 4.1419.0  10.3 18.1 
枚举的直接列表初始化P0138R273.919.11* 4.1418.0  10.3   
constexpr lambda 表达式P0170R17519.11* 4.1419.0  10.3 18.1 
基于范围 for 的相异 begin 和 end 类型P0184R063.919.10* 4.1218.0  10.3 17.7 
[[fallthrough]] 属性P0188R173.919.10* 4.1318.0  10.3 17.7 
[[nodiscard]] 属性P0189R173.919.11* 4.1318.0  10.3 17.7 
[[maybe_unused]] 属性P0212R173.919.11* 4.1318.0  10.3 17.7 
十六进制浮点字面量P0245R13.019.11* 4.1318.0  10.3 17.7 
使用属性命名空间而不重复P0028R473.919.11* 4.1318.0  10.3 17.7 
过对齐数据的动态内存分配P0035R47419.12* 4.14   10.3   
类模板实参推导P0091R37519.14* 5.019.0.1  10.3 19.1 
具有 auto 类型的非类型模板形参P0127R27419.14* 5.019.0.1  10.3 19.1 
有保证的复制消除P0135R17419.13* 5.019.0.1  10.3 19.1 
替换含引用成员的类对象P0137R17619.14* 5.0   10.3   
更严格的表达式求值顺序P0145R37419.14* 5.019.0.1  10.3   
结构化绑定P0217R37419.11* 4.1419.0  10.3 18.1 
忽略未知属性P0283R23.919.11* 4.1318.0  10.3 17.7 
constexpr if 语句P0292R273.919.11* 4.1419.0  10.3 18.1 
if 和 switch 的初始化语句P0305R173.919.11* 4.1418.0  10.3 18.1 
内联变量P0386R273.919.12* 4.1419.0  10.3 18.1 
从 C++17 移除已弃用的异常规定P0003R57419.10* 4.1419.0  10.3   
using 声明中的包展开P0195R27419.14* 5.0   10.3   
DR :模板模板实参的匹配排除了兼容的模板P0522R07419.12* 5.019.0.1  10.3   
C++17 功能特性
 
提案
 

GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

IBM XLC++

Sun/Oracle C++

Embarcadero C++ Builder

Cray

Portland Group (PGI)

Nvidia nvcc

C++17 库功能特性

C++17 功能特性
 
提案
 

GCC libstdc++

Clang libc++

MSVC
标准库

Apple Clang

Intel 并行 STL

Sun/Oracle C++
标准库

Embarcadero C++ Builder
标准库

Cray C++
标准库

 [折叠
std::void_tN391163.619.0* N/A 10.3 
std::uncaught_exceptions()N425963.719.0* N/A 10.3 
std::size() 、 std::empty() 与 std::data()N428063.619.0* N/A 10.3 
改进 std::pair 与 std::tupleN43876419.0* N/A 10.3 
std::bool_constantN438963.719.0* N/A 10.3 
std::shared_mutex (无时限)N450863.719.0* N/A 10.3 
类型特性变量模板P0006R073.819.0* N/A 10.3 
逻辑运算符类型特性P0013R163.819.0* N/A 10.3 
标准化并行 TSP0024R29* 19.14* 18.0*   
std::clamp()P0025R073.919.0* N/A 10.3 
硬件干涉大小P0154R1  19.11* N/A   
(nothrow-)swappable 特性P0185R173.919.0* N/A 10.3 
文件系统库P0218R18719.14* N/A 10.3 
std::string_viewN3921
P0220R1
7419.10* N/A 10.3 
std::anyP0220R17419.10*

10.0.0*

N/A 10.3 
std::optionalP0220R17419.10*

10.0.0*

N/A 10.3 
多态内存资源P0220R19 19.13* N/A 10.3 
数学特殊函数P0226R17 19.14* N/A 10.3 
C++17 应指代 C11 而非 C99P0063R39719.0*
(部分)*
 N/A 10.3 
接合 map 与 setP0083R37819.12* N/A   
std::variantP0088R37419.10*

10.0.0*

N/A 10.3 
std::make_from_tuple()P0209R273.919.10* N/A 10.3 
std::has_unique_object_representationsP0258R27619.11* N/A 10.3 
std::gcd() 与 std::lcm()P0295R07419.11* N/A 10.3 
std::not_fnP0005R4
P0358R1
73.919.12* N/A 10.3 
初等字符串转换P0067R58 (无浮点)7 (无浮点)19.14* (无浮点)* N/A   
有数组支持的 std::shared_ptr 与 std::weak_ptrP0414R27 19.12* N/A 10.3 
std::scoped_lockP0156R27519.11* N/A 10.3 
std::byteP0298R37519.11* N/A 10.3

 

std::is_aggregateLWG29117519.15* N/A 10.3 
C++17 功能特性
 
提案
 

GCC libstdc++

Clang libc++

MSVC
标准库

Apple Clang

Intel 并行 STL

Sun/Oracle C++
标准库

Embarcadero C++ Builder
标准库

Cray C++
标准库

 

C++14 功能特性

C++14 核心语言功能特性

C++14 功能特性
 
提案
 

GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

IBM XLC++

Sun/Oracle C++

Embarcadero C++ Builder

Cray

Portland Group (PGI)

Nvidia nvcc

 [折叠
按语境转换的遣词调整N33234.93.418.0* 4.916.013.1.2*5.1510.38.616.19.0
二进制字面量N34724.3 (GNU)
4.9
2.919.0* 4.1011.013.1.2*5.1410.38.620159.0
decltype(auto),普通函数的返回类型推导N36384.8 (部分)*
4.9
19.0* 4.915.013.1.2*5.1510.38.616.19.0
带初始化/泛化的 lambda 捕获 (init-capture)N36484.5 (部分)
4.9
3.419.0* 4.1015.0 5.1510.38.616.19.0
泛型(多态) lambda 表达式N36494.93.419.0* 4.1016.013.1.2*5.1510.38.616.19.0
变量模板N365153.419.0* 4.1117.013.1.2*5.1510.38.617.49.0
扩展的 constexprN365253.419.10* 4.1117.013.1.2*5.1510.38.617.49.0
成员初始化器与聚合体 (NSDMI)N365353.319.10* 4.916.0 5.1410.38.616.19.0
澄清内存分配(分配的免除/融合)N3664N/A3.4N/A N/A  N/A10.38.617.4 
[[deprecated]] 属性N37604.93.419.0* 4.915.0*
16.0
13.1.2*5.1410.38.616.19.0
具大小解分配N377853.419.0* 4.10.117.0 5.1410.38.616.1 
单引号作为数位分隔符N37814.93.419.0* 4.1016.013.1.2*5.1410.38.620159.0
C++14 功能特性
 
提案
 

GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

IBM XLC++

Sun/Oracle C++

Embarcadero C++ Builder

Cray

Portland Group (PGI)

Nvidia nvcc

C++14 库功能特性

C++14 功能特性
 
提案
 

GCC libstdc++

Clang libc++

MSVC
标准库

Apple Clang

Sun/Oracle C++
标准库

Embarcadero C++ Builder
标准库

Cray C++
标准库

 [折叠
<complex> 的 constexprN330253.419.0* 5.1510.38.6
std::result_of 与 SFINAEN3462519.0* 5.1510.38.6
<chrono> 的 constexprN346953.419.0* 5.1510.38.6
<array> 的 constexprN347053.419.0* 5.1510.38.6
<initializer_list> 、 <utility> 和 <tuple> 的 constexprN347153.419.0* 5.1510.38.6
改进的 std::integral_constantN354553.419.0* 5.1510.38.6
<chrono> 和 <string> 的用户定义字面量N364253.419.0* 5.1510.38.6
空向前迭代器N36445 (部分)3.419.0* 5.1510.38.6
std::quotedN365453.419.0* 5.1510.38.6
异质关联查找N365753.419.0* 5.1510.38.6
std::integer_sequenceN365853.419.0* 5.1510.38.6
std::shared_timed_mutexN365953.419.0* 5.1510.38.6
std::exchangeN366853.419.0* 5.1510.38.6
修正无 const 的 constexpr 成员函数N366953.419.0* 5.1510.38.6
std::get<T>()N367053.419.0* 5.1510.38.6
双范围的 std::equal 、 std::is_permutation 、 std::mismatchN367153.419.0* 5.1510.38.6
C++14 功能特性
 
提案
 

GCC libstdc++

Clang libc++

MSVC
标准库

Apple Clang

Sun/Oracle C++
标准库

Embarcadero C++ Builder
标准库

Cray C++
标准库

 

C++11 功能特性

C++11 核心语言功能特性

C++11 功能特性
 
提案
 

GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

IBM XLC++

Sun/Oracle C++

Embarcadero C++ Builder

Cray

Portland Group (PGI)

Nvidia nvcc

HP aCC

Digital Mars C++

 [折叠
C99 预处理器N16534.319.0* (部分)* 4.111.110.15.98.420157.0A.06.25
static_assertN17204.32.916.0* 4.111.011.15.138.420157.0A.06.258.52
右角括号N17574.314.0* 4.111.012.15.138.420157.0  
扩展的 friend 声明N17914.72.916.0* (部分)
18.0*
 4.111.1 (部分)
12.0
11.15.138.420157.0A.06.25 
long longN181114.0* 8.420157.0
类型特性N18364.33.014.0* 4.010.013.1.35.138.42015 6.16 
autoN19844.416.0* 3.911.0 (v0.9)
12.0
11.15.138.420157.0A.06.25 
委托构造函数N19864.73.018.0* 4.714.011.15.138.420157.0A.06.28 
extern templateN19873.312.0* 3.99.011.15.138.420157.0A.06.25 
constexprN22354.63.119.0* (部分) 4.613.0 (部分)
14.0
12.1 (部分)
13.1
5.138.420157.0A.06.28 
模板别名N22584.73.018.0* 4.212.113.1.1*5.138.420157.0A.06.27 
char16_t 与 char32_tN22494.42.919.0* 4.412.1*
14.0
13.1.1*5.138.420157.0A.06.278.52
alignasN23414.83.019.0* 4.815.013.1.2*5.138.620157.0  
alignofN23414.52.919.0* 4.815.013.1.2*5.138.420157.0  
默认化与被删除的函数N23464.43.018.0* 4.112.013.15.138.420157.0A.06.25 
强类型 enumN23474.42.917.0* 4.013.012.15.138.420157.0A.06.25 
原子操作N24274.43.117.0* Yes13.013.1.2*5.148.42015   
nullptrN24314.62.916.0* 4.212.113.15.138.420157.0A.06.278.52
显式转换运算符N24374.53.018.0* 4.413.012.15.138.420157.0A.06.27 
引用限定符N24394.8.12.919.0* 4.714.013.1.2*5.138.420157.0A.06.28 
Unicode 字符串字面量N24424.43.019.0* 4.711.0*10.1*
13.1.1*
5.78.420157.0A.06.288.52
未处理的字符串字面量N24424.518.0* 4.714.013.1.1*5.138.420157.0A.06.288.52
内联命名空间N25354.42.919.0* 4.514.011.15.138.420157.0A.06.28 
继承构造函数N25404.83.319.0* 4.815.013.1.1*5.138.420157.0  
尾随的函数返回类型N25414.42.916.0* 4.112.012.15.138.420157.0A.06.27 
无限制的联合体N25444.63.019.0* 4.614.0*13.1.2*5.138.420157.0A.06.28 
变参数模板N2242
N2555
4.3 (N2242)
4.4
2.918.0* 4.3 (N2242)
4.3
12.111.1 (N2242)5.138.420157.0A.06.27 
表达式 SFINAEN26344.42.919.14* 4.212.1  8.420157.0  
局部与无名类型作为模板形参N26574.52.916.0* 4.212.013.1.2*5.138.420157.0A.06.27 
线程局部存储N26594.4 (部分)
4.8
3.3*16.0* (partial)
19.0*
 4.811.1 (部分)
15.0*
10.1 (部分)*
13.1.2 (部分)*
5.9 (部分)8.42015  8.52 (部分)
带并发的动态初始化与析构(魔法静态变量N26604.32.919.0* Yes11.1*13.1.2*5.138.42015 A.06.25 
垃圾收集与基于可达性的泄漏检测N2670              
初始化器列表N26724.43.118.0* 4.513.0 (部分)
14.0
13.1.2*5.138.420157.0A.06.28 
非静态数据成员初始化器N27564.73.018.0* 4.614.013.1.2*5.138.420157.0A.06.28 
属性N27614.83.319.0* 4.212.113.1.1*5.138.420157.0A.06.27 
前置 enum 声明N27644.63.117.0* 4.511.1 (部分)
14.0
12.15.138.420157.0  
用户定义的字面量N27654.73.119.0* 4.815.013.1.2*5.148.420157.0  
Lambda 表达式N2550
N2658
N2927
4.53.116.0* (N2658)
17.0*
 4.112.013.1.2*5.138.420157.0 - claims N2927A.06.25 
范围 for 循环N29304.63.017.0* 4.513.013.1.2*5.138.420157.0A.06.28 
noexceptN30504.63.019.0* 4.514.013.1.1*5.138.420157.0A.06.28 
右值引用N2118
N2844
CWG1138
N3053
4.3 (N2118)
4.5 (CWG1138)
4.6
16.0* (N2844)
17.0* (CWG1138)
19.0*
 4.511.1 (N2118)
12.0 (N2844)
14.0
12.1 (CWG1138)5.138.420157.0 - lists N2118A.06.25 
override 与 finalN2928
N3206
N3272
4.72.914.0* (部分)
17.0*
 4.812.0 (N2928)
14.0
13.1.1*5.138.420157.0  
decltypeN2343
N3276
4.3 (N2343)
4.8.1
2.916.0* 4.2 (N2343)
4.8
11.0 (N2343)
12.0
11.1 (N2343)5.138.420157.0A.06.258.52 (N2343)
C++11 功能特性
 
提案
 

GCC

Clang

MSVC

Apple Clang

EDG eccp

Intel C++

IBM XLC++

Sun/Oracle C++

Embarcadero C++ Builder

Cray

Portland Group (PGI)

Nvidia nvcc

HP aCC

Digital Mars C++

C++11 库功能特性

C++11 功能特性
 
提案
 

GCC libstdc++

Clang libc++

MSVC
标准库

Apple Clang

Sun/Oracle C++
标准库

Embarcadero C++ Builder
标准库

Cray C++
标准库

 [折叠
垃圾收集与基于可达性的泄漏检测(库支持N26706
(无操作)
3.4
(无操作)
19.0*
(无操作)
    
金额、时间及十六进制浮点 I/O 操纵符N2071
N2072
53.819.0* 5.15  
C++11 功能特性
 
提案
 

GCC libstdc++

Clang libc++

MSVC
标准库

Apple Clang

Sun/Oracle C++
标准库

Embarcadero C++ Builder
标准库

Cray C++
标准库

  • - 在版本号上停留可以查看注记

 

引用

各编译器厂商的兼容性检查单文档(这些通常比以上表格更能反映最新的情况)

  • GCC (更新于 2019-06)
  • Clang++ (更新于 2019-04)
  • Apple Clang (更新于 2019-06)
  • Microsoft Visual Studio (更新于 2019-05)
  • Intel C++ (更新于 2018-11 )
  • 并行 STL ( C++17 带执行策略支持的标准库算法的实现)
  • EDG (更新于 2019-04 )
  • Oracle C++ (2017-07 更新)
  • 5.15 中添加了完整 C++14 支持。
  • Oracle 提供对标准库的四种不同实现:
  • libCstd (RogueWave Standard Library version 2), 早于 C++98
  • stlport4 (STLport Standard Library version 4.5.3), 早于 C++03
  • stdcxx4 (Apache Standard Library version 4), 早于 C++11
  • libstdc++ (GCC runtime library, 根据不同发布版本对 C++11 和 C++14 有所支持)
  • IBM XL C++ (更新于 2018-05 )
  • IBM XL C++ for Linux
  • 核心语言支持状况: 13.1.6 起 C++11 完整, 16.1.0 中部分 C++14
  • IBM 在 Linux 上不提供 C++ 标准库实现(使用 GNU libstdc++ )
  • IBM XL C++ for AIX
  • HP aCC
  • Digital Mars C++
  • Embarcadero C++
  • 语言功能特性遵从状况 (RAD Studio 10.1 Berlin) ,包括老式编译器与 Clang 增强编译器(基于 Clang 3.3 )所支持的 C++11 功能特性
  • 语言功能特性遵从状况 (RAD Studio 10.3 Rio) ,包括老式编译器所支持的 C++11 功能特性,和 Clang 增强编译器(基于 Clang 5.0 )所支持的 C++11、 C++14 及 C++17 功能特性
  • Cray (更新于 2018-01 )
  • Portland Group (PGI) (更新于 2019-01)
  • Nvidia Cuda nvcc (更新于 2019-03)
  • Texas Instruments (更新于 2018-05 )
  • Analog Devices (更新于 2018-05 )

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值