cpp/compiler support/vendors
From cppreference.net
<
cpp
|
compiler support
개별 벤더 호환성 체크리스트
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 기능 지원 (Modern C++) C++11 핵심 언어 기능 포함
- Visual C++ 새로운 기능 2003부터 2015까지 C++11 N1913 포함
- VS "15" Preview 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 베타의 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은 C++ 표준 라이브러리의 4가지 구현체를 제공합니다:
- libCstd (RogueWave Standard Library version 2), C++98 이전 버전
- stlport4 (STLport Standard Library version 4.5.3), C++03 이전 버전
- stdcxx4 (Apache Standard Library version 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 라이브러리 버전 을 제공하며, <regex>를 포함한 C++ TR1을 완전히 지원하지만 C++11은 지원하지 않음
- IBM XL C/C++ 컴파일러 기능
HP aCC
- HP aC++ A.06.28 릴리스 노트 (C++11 핵심 언어 기능 포함)
- HP는 C++98 표준 라이브러리의 RogueWave STL 2.0 구현 버전을 제공합니다
Digital Mars C++
엠바카데로 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년 릴리스 노트 는 "일반화된 constexpr 및 constexpr 멤버 함수와 암시적 const, 변수 템플릿, 메모리 할당 명확화(통합 할당)"를 제외하고 C++14 지원을 주장합니다.
- 2018년 릴리스 노트
- PGI 19.1 레퍼런스 매뉴얼
- PGI는 C++ 표준 라이브러리 구현을 제공하지 않습니다.
Nvidia Cuda nvcc (업데이트 2023-01-12)
- CUDA C++ Programming Guide (v12.0)
- 모든 C++17 언어 기능은 nvcc 버전 11.0 이상에서 지원되며, 여기 에 설명된 제한 사항이 적용됩니다
- 모든 C++20 언어 기능은 nvcc 버전 12.0 이상에서 지원되며, 여기 에 설명된 제한 사항이 적용됩니다
- NVCC는 C++ 표준 라이브러리 구현체를 포함하지 않습니다
텍사스 인스트루먼트 (업데이트: 2018-05)
- cl430 버전 v18.1.0 이 C++14 지원을 주장함
Analog Devices (업데이트: 2018-05)
- CrossCore Embedded Studio 2.8.0 for SHARC C++11 지원을 주장함