cpp/编译器支持/供应商
来自 cppreference.cn
[编辑] 个别供应商兼容性检查清单
[编辑] GCC (更新于 2025-01)
- C++11 核心语言支持状态(自 4.8.1 起完成,除了 N2670,该功能没有编译器实现,并在 C++23 中移除)
- C++11 库支持状态(自 5.1 起完成)
- C++14 核心语言支持状态(自 5.1 起完成)
- C++14 库支持状态(自 5.1 起完成)
- C++17 核心语言支持状态(自 7.1 起完成)
- C++17 库支持状态(自 12.0 起完成)
- C++20 核心语言支持状态(自 11.0 起完成,模块部分除外)
- C++20 库支持状态(自 14.0 起完成)
- C++23 核心语言支持状态
- C++23 库支持状态
- C++26 核心语言支持状态
- 技术规范支持状态
- 核心语言缺陷报告状态
[编辑] Clang (更新于 2025-01)
- 实时 libc++ 一致性状态
- C++11 核心语言支持状态(自 3.3 起完成)
- C++11 库支持状态(自 2012-07-29 起完成)
- C++14 核心语言支持状态(自 3.4 起完成)
- C++14 库支持状态(自 3.5 起完成)
- C++17 核心语言支持状态(自 5.0 起完成)
- C++17 库支持状态
- C++20 核心语言支持状态
- C++20 库支持状态
- C++23 核心语言支持状态
- C++23 库支持状态
- C++26 核心语言支持状态
- C++26 库支持状态
- 技术规范支持状态
- 核心语言缺陷报告状态
[编辑] Apple Clang (更新于 2025-01)
[编辑] Microsoft Visual Studio (更新于 2025-02)
- Microsoft C/C++ 语言一致性(自 Visual Studio 2015 起)
- STL 变更日志(自 Visual Studio 2019 16.5 起)
- 上述未包含功能的参考
- 对 C++11/14/17 功能的支持(现代 C++)包括 C++11 核心语言功能
- Visual C++ 2003 到 2015 新功能包括 C++11 N1913
- VS “15” 预览版 5 中的 C++14/17 功能和 STL 修复包括 C++14 LWG2112、LWG2246 和 LWG2285,以及 C++17 LWG2296
- VS 2017 15.8 中的 STL 功能和修复包括 C++17 LWG2911
- Visual Studio 2022 中的 C++ 一致性改进、行为变更和 bug 修复包括 C++23 P2334R1
- CWG 2518 尚未实现 - 未实例化的模板中的 static_assert 产生错误包括 C++23 CWG2518
- Visual Studio 2022 版本 17.12 中的 MSVC 编译器语言更新包括 C++23 P2128R6
- Visual Studio 2022 17.13 中 MSVC 的 C++ 语言更新包括 C++23 P0330R8、P0847R7 和 P2242R3
[编辑] Intel C++ (更新于 2023-01)
- C++11 核心语言支持状态(自 15.0 起完成)
- C++14 核心语言支持状态(自 17.0 起功能上完成 - N3664 是一个优化)
- C++17 核心语言支持状态(不完整)
- C++20 核心语言支持状态(不完整)
- Intel 19.0 beta 的 C++17 功能
- Intel 不提供 C++ 标准库的实现,除了
- Parallel STL(一个支持执行策略的 C++17 标准库算法实现)
- Intel 与 GCC 的 libstdc++ 版本的兼容性
[编辑] EDG (更新于 2025-01)
- C++11 核心语言支持状态
- C++14 核心语言支持状态
- C++17 核心语言支持状态
- C++20 核心语言支持状态
- C++23 核心语言支持状态
- C++26 核心语言支持状态
- EDG 不提供 C++ 标准库的实现
[编辑] Oracle C++ (更新于 2017-07)
- 版本号是编译器版本,不是 Oracle Studio 版本
- 5.13 中的 C++11 核心语言支持状态
- 5.14 中添加了 C++14 功能
- 5.15 中添加了完整的 C++14 支持。
- Oracle 提供 4 种 C++ 标准库的实现
- libCstd (RogueWave 标准库版本 2),早于 C++98
- stlport4 (STLport 标准库版本 4.5.3),早于 C++03
- stdcxx4 (Apache 标准库版本 4),早于 C++11
- libstdc++ (GCC 运行时库,根据发布版本支持 C++11 和 C++14)
[编辑] IBM XL C++ (更新于 2018-05)
- IBM XL C++ for Linux
- 核心语言支持状态:C++11 自 13.1.6 起完成,C++14 在 16.1.0 中部分完成
- IBM 不提供适用于 Linux 的 C++ 标准库实现(使用 GNU libstdc++)
- IBM XL C++ for AIX
- 核心语言支持状态:C++11 在 13.1.3 和 16.1.0 中部分完成 (xlC 前端),在 16.1.0 中完成 (xlclang 前端)
- IBM 为 AIX 提供 Dinkumware 库的一个版本,完全支持 C++ TR1,包括 <regex>,但不包括 C++11
- IBM XL C/C++ 编译器功能
[编辑] HP aCC
- HP aC++ A.06.28 发布说明(包括 C++11 核心语言功能)
- HP 提供 RogueWave STL 2.0 版本的 C++98 标准库实现
[编辑] 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 (更新于 2023-02)
- Cray C 和 C++ 参考手册 (8.4) 对于版本 8.4,声称支持所有 C++14,除了 alignas
- Cray C 和 C++ 参考手册 (8.6) 对于版本 8.6,声称支持所有 C++14
- Cray C 和 C++ 参考手册 (9.1) 对于版本 9.1,未声称支持 C++14 以上版本
- HPE Cray Clang C 和 C++ 快速参考 (14.0) (S-2179) 从版本 11 开始(至少到 14),都基于 Clang,并且通常期望具有相应的语言支持。涉及“有趣”代码生成或链接行为的功能(例如协程或模块)可能会滞后,因为编译器支持为 GPU 和其他类似受限设备生成代码
[编辑] Portland Group (PGI) (更新于 2019-01)
- 2016 年发布说明声称支持 C++14,除了“通用 constexpr 和 constexpr 成员函数以及隐式 const、变量模板、澄清内存分配(合并分配)”
- 2018 年发布说明
- PGI 19.1 参考手册
- PGI 不提供 C++ 标准库的实现
[编辑] Nvidia Cuda nvcc (更新于 2023-01-12)
- CUDA C++ 编程指南 (v12.0)
- nvcc 11.0 及更高版本支持所有 C++17 语言功能,但受 此处所述限制
- nvcc 12.0 及更高版本支持所有 C++20 语言功能,但受 此处所述限制
- NVCC 不提供 C++ 标准库实现
[编辑] Texas Instruments (更新于 2018-05)
- cl430 版本 v18.1.0 声称支持 C++14
[编辑] Analog Devices (更新于 2018-05)
- CrossCore Embedded Studio 2.8.0 for SHARC 声称支持 C++11