编译器对新特性的支持情况
来自cppreference.com
< cpp
此页面已经有一段时间没有修改,可能已经过时。 |
下表为各个编译器对新的C++特性的支持情况。这些特性包括C++11、C++14和几个技术规范的内容。
C++特性 |
文档 |
HP aCC |
EDG eccp |
GCC |
Intel C++ |
MSVC |
IBM XLC++ |
Sun/Oracle C++ |
Embarcadero C++ Builder |
Digital Mars C++ |
Clang |
alignas
|
N2341 | 4.8 | 3.0 | ||||||||
alignof
|
N2341 | 4.5 | Yes | 2.9 | |||||||
原子操作 | N2427 | 4.4 | 13.0 | 11.0 | 3.1 | ||||||
auto
|
N1984(v1.0) | 4.1(v0.9) | 4.4(v1.0) | 11.0(v0.9) | 10.0(v0.9) | 11.1(v1.0) | Yes | ||||
C99 预编译器 | N1653 | 4.3 | 11.1 | 10.1 | 5.9 | Yes | Yes | ||||
Concepts (已移除) | N2617 | ||||||||||
constexpr
|
N2235 | 4.6 | 13.0 | 12.1 | 3.1 | ||||||
decltype
|
v1.0: N2343 v1.1: N3276 |
4.1(v1.0) | 4.3(v1.0) 4.8.1(v1.1) |
11.0(v1.0) | 10.0(v1.0) 11.0(v1.1) |
11.1(v1.0) | Yes | 2.9 | |||
标为default和delete的函数 | N2346 | 4.1 | 4.4 | 12.0 | 3.0 | ||||||
委托构造 | N1986 | 4.7 | 11.0 | 11.1 | 3.0 | ||||||
显示转换操作符 | N2437 | 4.5 | 13.0 | 11.0 | 12.1 | Yes | 3.0 | ||||
friend 定义的扩展 | N1791 | 4.1 | 4.7 | 11.0 | 10.0* | 11.1 | 2.9 | ||||
extern template | N1987 | 3 | 3.3 | 9.0 | 6.0 | 11.1 | Yes | Yes | |||
enum 的前向声明 | N2764 | 4.6 | 11.0 | 12.1 | 3.1 | ||||||
构造函数的继承 | N2540 | 4.8 | 3.3 | ||||||||
初始化列表 | N2672 | 4.4 | 13.0 | 11.0 | 3.1 | ||||||
Lambda 表达式 | v0.9: N2550 |
4.1(v0.9) | 4.5(v1.1) | 11.0(v0.9) 12.0(v1.0) |
10.0(v1.0) 11.0(v1.1) |
3.1 | |||||
将局部类型或者无名类型作为模板参数 | N2657 | 4.5 | 12.0 | 10.0 | 2.9 | ||||||
long long | N1811 | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
命名空间的关联 | N2535 | 4.4 | 11.1 | 2.9 | |||||||
新的字符类型 | N2249 | 4.4 | 2.9 | ||||||||
后置返回类型 | N2541 | 4.1 | 4.4 | 12.1 | 10.0 | 12.1 | 2.9 | ||||
nullptr | N2431 | 4.6 | 12.1* | 10.0 | 2.9 | ||||||
Unicode 字符串字面值 | N2442 | 4.4 | 11.0* | 5.7 | Yes | 3.0 | |||||
Raw 字符串字面值 | N2442 | 4.5 | 11.0 | Yes | |||||||
自定义字面值 | N2765 | 4.7 | 3.1 | ||||||||
右括号运算符优先级的更改 | N1757 | 4.1 | 4.3 | 11.0 | 8.0 | 12.1 | Yes | ||||
右值引用 | v1.0: N2118 |
4.1(v1.0) | 4.3(v1.0) 4.5(v2.1) 4.6(v3.0) |
11.1(v1.0) 12.0(v2.0) |
10.0(v2.0) 11.0(v2.1) |
12.1(v2.1) | Yes | Yes | |||
static_assert | N1720 | 4.1 | 4.3 | 11.0 | 10.0 | 11.1 | Yes | 2.9 | |||
强类型枚举 | N2347 | 4.4 | 12.0 | 11.0 | 12.1 | Yes | 2.9 | ||||
模板别名 | N2258 | 4.7 | 12.1 | 3.0 | |||||||
线程本地存储 | N2659 | 4.4* 4.8 |
11.1* | 10.0* | 5.9* | 3.3* 3.3 | |||||
无限制的unions | N2544 | 4.6 | 3.0 | ||||||||
类型帮助类 | N1836 | 6.16 | 4.0 | 4.3 | 10.0 | 8.0 | Yes | 3.0 | |||
变长参数模板 | v0.9: N2242 v1.0: N2555 |
4.1(v0.9) | 4.3(v0.9) 4.4(v1.0) |
12.1(v0.9) | 11.0 | 11.1(v0.9) | 2.9(v1.0) | ||||
以范围为基础的 for 循环 | N2930 | 4.6 | 13.0 | 11.0 | 3.0 | ||||||
override 和 final | v0.8: N2928 |
4.7 | 12.0(v0.8) | 8.0(v0.8) 11.0(v1.0) |
2.9 | ||||||
属性标识 | N2761 | 4.8 | 12.1 | 3.3 | |||||||
引用标识 | N2439 | 4.8.1 | 2.9 | ||||||||
使用花括号为成员变量初始化 | N2756 | 4.7 | 3.0 | ||||||||
并行动态构造和析构 | N2660 | 4.3 | 2.9 |
* - 将鼠标移至其上查看详情