cpp/compiler support/vendors
来自cppreference.com
< cpp | compiler support
[编辑] 各编译器厂商的兼容性检查单文档
[编辑] GCC (更新于 2025-01)
- C++11 核心语言支持状况(4.8.1 起完成,除了无编译器实现并于 C++23 移除的 N2670)
- 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++ 一致性改进、行为变更和漏洞修复,包含 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++ 标准库的实现,除了
- 并行 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 版本
- C++11 核心语言支持状况
- 5.14 中加入的 C++14 功能特性
- 5.15 中添加了完整 C++14 支持。
- Oracle 提供对标准库的四种不同实现:
- 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
- 核心语言支持状况:13.1.6 起 C++11 完整,16.1.0 中部分 C++14
- IBM 在 Linux 上不提供 C++ 标准库实现(使用 GNU libstdc++)
- IBM XL C++ for AIX
- 核心语言支持状况:13.1.3 中部分支持 C++11。
- 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 版支持除 alignas 外的全部 C++14
- 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 CUDA C 编程手册 (v11.2.1)
- nvcc 版本 11.0 及之后的版本支持所有 C++17 语言功能特性,一些受到的限制在此处描述
- nvcc 版本 12.0 及之后的版本支持所有 C++20 语言功能特性,一些受到的限制在此处描述
- NVCC 不提供 C++ 标准库的实现
[编辑] Texas Instruments (更新于 2018-05)
- cl430 版本 v18.1.0 声称支持 C++14