C compiler support
From cppreference.net
<
c
|
|
이 페이지는 최선을 다해 유지 관리되지만 최신 컴파일러 릴리스보다 뒤쳐질 수 있습니다. 내용이 최신 상태가 아닌 것을 발견하시면 업데이트를 도와주시기 바랍니다! |
목차 |
C23 기능
이 목록은 C23/2x 표준 초안이 발전함에 따라 변경될 수 있습니다.
C23 코어 언어 기능
|
이 섹션은 불완전합니다
이유: Apple Clang 및 C2x를 지원하는 다른 컴파일러의 상태 |
|
C23 기능
|
논문
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| static_assert 메시지 없는 | N2265 | 9 | 9 | Yes | Yes | 6.5 | 2021.1.2 (clang based) | ||||
[[
nodiscard
]]
|
N2267 | 10 | 9 | 지원 | 6.4 | 2021.1.2 (clang based) | |||||
[[
maybe_unused
]]
|
N2270 | 10 | 9 | 지원 | 6.4 | 2021.1.2 (clang 기반) | |||||
[[
deprecated
]]
|
N2334 | 10 | 9 | 지원 | 6.4 | 2021.1.2 (clang 기반) | |||||
| 속성 |
N2335
N2554 |
10 | 9 | 지원 | 6.4 | 2021.1.2 (clang based) | |||||
| IEEE 754 십진 부동소수점 타입 | N2341 |
4.2
(부분적)*
12 |
13.0 (부분적)* | ||||||||
[[
fallthrough
]]
|
N2408 | 10 | 9 | 지원 | 6.4 | 2021.1.2 (clang 기반) | |||||
u8
문자 상수
|
N2418 | 10 | 15 | 6.5 | 2022.2 | ||||||
| 프로토타입 없는 함수 정의 제거 | N2432 | 10 | 15 | 2022.2 | |||||||
[[
nodiscard
]]
메시지와 함께
|
N2448 | 11 | 10 | 지원 | 6.4 | 2021.1.2 (clang 기반) | |||||
| 함수 정의에서 이름 없는 매개변수 | N2480 | 11 | 11 | Yes | 6.4 | 2021.1.2 (clang based) | |||||
| Labels 선언 앞과 블록 끝에 레이블 사용 | N2508 | 11 | 16 | 부분 지원* | 6.5 | 17.0 * | |||||
| 이진 정수 상수 | N2549 |
4.3
*
11 |
2.9
*
9 |
19.0 (2015)* * | 예 | 6.5 | 11.0 * | ||||
| __has_c_attribute 전처리기 조건문에서 | N2553 | 11 | 9 | 지원 | 6.5 | 2021.1.2 (clang 기반) | |||||
| 중복 속성 허용 | N2557 | 11 | 13 | Yes | 6.5 | 2021.4 (clang-based | |||||
| IEEE 754 교환 및 확장 타입 | N2601 |
7
(부분적)*
14 |
6 (부분적)* | 부분적* | |||||||
| 숫자 구분자 | N2626 | 12 | 13 | 19.0 (2015)* * | 지원 | 6.5 | 18.0 * | ||||
#elifdef
및
#elifndef
|
N2645 | 12 | 13 | 19.40* | 13.1.6* | 6.5 | 2021.4 | ||||
u8
문자열 리터럴
의 타입 변경
|
N2653 | 13 | |||||||||
[[
maybe_unused
]]
레이블용
|
N2662 | 11 | 16 | 6.5 | 2022.2 | ||||||
| #warning | N2686 | 예 | 예 | 예 | 6.5 | 예 | |||||
| 비트 정밀 정수형 ( _BitInt ) | N2763 | 14 (부분적)* | 15 | 6.5 | 2022.2 | ||||||
[[
noreturn
]]
|
N2764 | 13 | 15 | 6.5 | 2022.2 | ||||||
[[
noreturn
]]
|
N2764 | 13 | 15 | 6.5 | 2022.2 | ||||||
| 비트 정밀도 정수 상수를 위한 접미사 | N2775 | 14 | 15 | 2022.2 | |||||||
| __has_include 전처리기 조건문에서 | N2799 | 5 | 예 | 19.11* | 예 | 6.5 | 18.0 | ||||
| 유니코드 표준 부속서 31을 사용한 식별자 구문 | N2836 | 13 | 15 | 6.5 | 2022.2 | ||||||
| 프로토타입 없는 함수 선언 제거 | N2841 | 13 | 15 | 2022.2 | |||||||
| 빈 초기화 | N2900 |
부분적*
13 |
부분적* | 부분적* | 부분적* | 부분적* | |||||
| typeof 및 typeof_unqual |
N2927
N2930 |
부분적*
13 |
부분적*
16 |
19.39* | 부분적* | 부분적* | 부분적* | 부분적* | |||
| 키워드의 새로운 철자법 | N2934 | 13 | 16 | 6.5 | |||||||
| 미리 정의된 true 및 false | N2935 | 13 | 15 | 2022.2 | |||||||
[[
unsequenced
]]
와
[[
reproducible
]]
|
N2956 | 15 | |||||||||
| 가변 인수 매개변수 목록에 대한 요구 사항 완화 variadic parameter list | N2975 | 13 | 16 | 6.5 | 2023.1 | ||||||
| 객체 정의에서의 타입 추론 | N3007 | 13 | 18 | ||||||||
| #embed | N3017 | 15 | 19 | ||||||||
| constexpr 객체 | N3018 | 13 | 19 | ||||||||
| 향상된 일반 열거형 | N3029 | 13 | 20 * | ||||||||
| 고정된 기본 타입을 가진 열거형 | N3030 | 13 | 20 * | ||||||||
__VA_OPT__
|
N3033 |
8
13 |
12 | 19.39* | 6.5 | ||||||
| 복합 리터럴에 대한 저장류 지정자 | N3038 | 13 | |||||||||
| nullptr | N3042 | 13 | 16 | ||||||||
|
C23 기능 |
문서 |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
C23 라이브러리 기능
|
이 섹션은 불완전합니다
이유: C 표준 라이브러리에 대한 별도의 목록 필요 |
C99 기능
C99 핵심 언어 기능
|
이 섹션은 불완전합니다
이유: C 컴파일러 목록 필요, 검증 필요 |
|
C99 기능
|
문서
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| 식별자의 유니버설 문자 이름 | 3.1 | Yes | Yes | ||||||||
| 증가된 번역 제한 | N590 | 0.9 | N/A | ||||||||
| // 주석 | N644 | 2.7 | 지원 | 지원 | |||||||
| restrict 포인터 | N448 | 2.95 | 지원 | 부분적 * | |||||||
| 향상된 산술 타입 |
N815
N601 N620 N638 N657 N694 N809 |
예 | 부분적 | 가능성 있음 | |||||||
| 플렉시블 배열 멤버 | 3.0 | Yes | Yes | ||||||||
| 가변 길이 배열 (VLA) 타입 | N683 | 0.9 | 지원 | ||||||||
| 가변 수정 (VM) 타입 | N2778 | N/A | 지원 | ||||||||
| 지정 이니셜라이저 | N494 | 3.0 | 예 | 예 | |||||||
| 비상수 이니셜라이저 | 1.21 | N/A | |||||||||
| 멱등성 cvr 한정자 | N505 | 3.0 | N/A | ||||||||
| 열거자 목록의 후행 쉼표 enumerator-list | 0.9 | Yes | Yes | ||||||||
| 16진수 부동 소수점 상수 | N308 | 2.8 | 지원 | 지원 | |||||||
| 복합 리터럴 | N716 | 3.1 | 예 | 예 | |||||||
| 부동 소수점 환경 | 부분적 | 부분적 | |||||||||
| 부호 있는 정수형 나눗셈에 대한 절사 요구 | N617 | 0.9 | N/A | ||||||||
main()
함수에서의
암시적
return
0
;
|
지원 | 지원 | 지원 | ||||||||
| 혼합된 순서의 선언과 문 | N740 | 3.0 | Yes | Yes | |||||||
| init-statement in for 루프 | Yes | Yes | Yes | ||||||||
| inline 함수 | N741 | 4.3 | Yes | Yes | |||||||
| 미리 정의된 변수 __func__ | N611 | 2.95 | 지원 | 지원 | |||||||
| Cvr 한정자와 함수 선언 내 static in [ ] | 3.1 | Yes | |||||||||
| 가변 인자 매크로 | N707 | 2.95 | 예 | 예 | |||||||
| _Pragma 전처리기 연산자 | N634 | 3.0 | 지원 | 부분적 * | |||||||
| 부동 소수점 평가를 위한 표준 프라그마 |
N631
N696 |
아니오 | 아니오 | ||||||||
|
C99 기능 |
문서 |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
참고 항목
|
C++ 문서
에서
컴파일러 지원
참조
|