cpp/编译器支持/供应商
来自 cppreference.com
[编辑] 单个供应商兼容性清单
[编辑] GCC (更新于 2023-12)
- C++11 核心语言支持状态 (截至 4.8.1 版本完整,除了 N2670,该版本未被任何编译器实现,并在 C++23 中被移除)
- C++14 核心语言支持状态 (截至 5.1 版本完整)
- C++17 核心语言支持状态 (截至 7.1 版本完整)
- C++20 核心语言支持状态(截至 11.0 版本完整,除了部分模块)
- C++23 核心语言支持状态
- C++11 库支持状态 (截至 5.1 版本完整)
- C++14 库支持状态 (截至 5.1 版本完整)
- C++17 库支持状态 (截至 12.0 版本完整)
- C++20 库支持状态 (截至 14.0 版本完整)
- C++23 库支持状态
- 技术规范支持状态
- 核心语言缺陷报告状态
[编辑] Clang++ (更新于 2023-12)
- 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 (更新于 2023-12)
[编辑] Microsoft Visual Studio (更新于 2022-03)
- Microsoft C/C++ 语言符合性 (Visual Studio 2015 及更高版本)
- 即将发布的 Visual Studio 2022 更改日志
- Visual Studio 2019 中的 C++17/20 功能和修复
- VS 2017 15.8 中的 STL 功能和修复
- C++17 宣布:MSVC 符合 C++ 标准 (截至 15.7 版本完整)
- C++17 VS 2017 15.5 和 15.6 中的功能和 STL 修复
- C++17 VS 2017 15.3 中的功能和 STL 修复
- C++11/C++14/C++17 VS2017.3 中的核心语言和库状态
- C++11/14/17 核心语言支持状态
- VS2010、VS2012、VS2013 和 VS2015 中的 C++11/14/17 核心语言支持状态
- VS2013 与 VS2015 CTP0
- VS2013 与 VS2015 CTP1
- VS2013 与 VS2015 CTP3 (包括路线图表)
- VS2015 (“VS14”) 预览版
- VS2015 (“VS14”) 发布候选版本 (C++11 仍然不完整,但出现了 C++17 支持)
- VS2019
- C++11 和 C++14 库支持状态
- VS 2015 RTM 中的 C++11/14/17 功能 包括核心语言和标准库 (包括技术规范)
- VS 2015 更新 2 的 STL 迄今为止已具备 C++17 的全部功能 库功能完整,截至目前的 C++17 标准,仅存在一些小问题 (一些缺陷报告,一些 constexpr 等)
- VS “15” 预览版 5 中的 C++14/17 功能和 STL 修复 包括详细的 C++17 状态表
[编辑] 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++ 标准库的实现,除了
- 并行 STL (C++17 标准库算法的实现,支持执行策略)
- Intel 与 GCC 版本的 libstdc++ 的兼容性
[编辑] EDG (更新于 2022-03)
- C++11 核心语言支持状态
- C++14 核心语言支持状态
- C++17 核心语言支持状态
- C++20 核心语言支持状态
- C++23 核心语言支持状态
- 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)
- 适用于 Linux 的 IBM XL C++
- 核心语言支持状态: C++11 截至 13.1.6 版本完整,C++14 截至 16.1.0 版本部分完整
- IBM 没有为 Linux 发布 C++ 标准库的实现 (使用 GNU libstdc++)
- 适用于 AIX 的 IBM XL C++
- 核心语言支持状态: 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 3.3的Clang增强编译器支持的C++11特性
- 语言特性兼容性状态 (RAD Studio 10.3 Rio),包括传统编译器支持的C++11特性,以及Clang增强编译器支持的C++11、C++14和C++17特性(基于Clang 5.0)
[编辑] 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)
- SHARC 的 CrossCore Embedded Studio 2.8.0 声称支持 C++11。