cpp/編譯器支援/供應商
來自 cppreference.com
[編輯] 個別供應商相容性檢查清單
[編輯] 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