Namespaces
Variants

C++23

From cppreference.net

현재 C++ 표준의 개정판.

목차

새로운 언어 기능

void f ( int & x )
{
if ( x )
goto END ;
x = 42 ;
END :
}
*참고: 제공된 내용은 C++ 코드로, 태그 내에 있어 번역이 제외되었습니다. HTML 태그와 속성, C++ 관련 용어는 모두 원본 그대로 유지되었습니다.*
  • 초기화 문장에서의 별칭 선언 ( using ) ( P2360R0 ), 예:
for ( using T = int ; T e : v )
/* ... */

새로운 라이브러리 기능

새로운 모듈

새 헤더

C 호환성 헤더:

라이브러리 기능

일반 유틸리티
코루틴 라이브러리
진단
알고리즘, 반복자, 범위
컨테이너
컴파일 타임 지원
메모리 관리
문자열 및 텍스트 처리
입출력 및 출력

폐기된 기능

제거된 기능
  • 가비지 컬렉션 지원 및 도달 가능성 기반 메모리 누수 감지. ( P2186R2 )
  • 혼합 와이드 문자열 리터럴 concatenation 지원, 예를 들어 const auto * no = u "q" U "p" 는 올바르지 않은 형식입니다. ( P2201R1 )
  • 인코딩 불가능한 와이드 문자 리터럴 및 다중 문자 와이드 문자 리터럴, 예를 들어 wchar_t x = 'db' 는 올바르지 않은 형식입니다. ( P2362R3 )
사용 중단된 기능
되돌려진 사용 중단
  • 첨자 표현식 내 operator, (쉼표 연산자) (단, 오버로드 가능한 다차원 첨자 operator [ ] 를 지원하기 위해 의미론이 변경됨).
  • 일부 C 헤더 (C와의 호환성을 위한 해당 <*.h> 헤더들) ( P2340R1 )

결함 보고서

컴파일러 지원

주요 문서: C++23 컴파일러 지원

C++23 핵심 언어 기능

C++23 기능

문서

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
리터럴 접미사 (부호 있는) size_t ( FTM ) * P0330R8 11 13 19.43* 13.1.6* 6.5 2022.2 23.9
() 람다 에서 더 선택적으로 만들기 P1102R2 11 13 19.44* 13.1.6* 6.3 2022.2 22.5
if consteval ( FTM ) * P1938R3 12 14 19.44* 14.0.0* 6.3 2022.2 24.1
가비지 컬렉션 지원 제거 P2186R2 12 N/A 19.30* N/A N/A
static_assert constexpr if 문맥에서의 축소 변환 P1401R5 9 13 (부분적)*
14
14.0.0* 2022.2 20.7
줄 접합 전 공백 제거 P2223R2 Yes Yes Yes 6.7 2022.2 Yes
선언 순서 레이아웃을 의무화 P1847R4 Yes Yes Yes Yes 2022.2 Yes
혼합 와이드 문자열 리터럴 제거 concatenation P2201R1 Yes Yes Yes Yes Yes Yes Yes
명시적 객체 멤버 함수 (this 추론 this )  ( FTM ) * P0847R7 14 18
19*
19.32*
(부분적)*
19.43*
6.3 22.5
auto(x) auto{x} ( FTM ) * P0849R8 12 15 14.0.3* 6.4 2022.2 23.3
#elifdef #elifndef P2334R1 12 13 19.40* 13.1.6* 6.5 2022.2 23.9
constexpr 함수에서 비 리터럴 변수 (및 레이블과 goto) 허용  ( FTM ) * P2242R3 12 15 19.43* 14.0.3* 6.3 2022.2 22.5
일관된 문자 리터럴 인코딩 P2316R2 Yes Yes 19.30* Yes Yes 2022.2 Yes
문자 집합과 인코딩 P2314R4 10 2022.2
초기화 문장( for 루프 의)을 확장하여 별칭 선언 을 허용 P2360R0 12 14 14.0.0* 2022.2
다차원 첨자 연산자 ( FTM ) * P2128R6 12 15 19.42* 14.0.3* 2022.2
람다 에 대한 속성 P2173R1 9 13 19.44* 13.1.6* 6.6 2022.2 22.5
#warning P2437R1 예* 15.0.0* 6.5 2023.2
인코딩 불가능한 와이드 문자 리터럴 및 멀티캐릭터 와이드 문자 리터럴 제거 P2362R3 13 14 15.0.0* 6.7 2023.2
복합문 끝의 레이블 P2324R2 13 16 16.0.0* 6.5 2023.2 23.9
구분된 이스케이프 시퀀스 P2290R3 13 15 15.0.0* 6.7 2023.2
명명된 유니버설 문자 이스케이프 ( FTM ) * P2071R2 13 15 15.0.0* 6.7 2023.2
일부 constexpr 제한 완화  ( FTM ) * P2448R2 13 17 (부분적)
19
2024.0 (부분적)
간소화된 암시적 이동  ( FTM ) * P2266R3 13 13 6.7 2022.2
static operator ( ) ( FTM ) * P1169R4 13 16 19.44* 16.0.0* 6.7 2023.2
선택적 확장 부동소수점 타입 요구사항 P1467R9 13 N/A 6.4
상속된 생성자로부터의 클래스 템플릿 인수 추론 P2582R1 14
속성 [[ assume ]] P1774R8 13 19
이식 가능한 소스 파일 인코딩으로서의 UTF-8 지원 P2295R6 13* 15* 19.0 (Update 2)* * 15.0.0* 2023.2
static operator [ ] ( FTM ) * P2589R1 13 16 19.44* 16.0.0* 6.7 2023.2
constexpr 함수 내에서 static constexpr 변수 허용 ( FTM ) * P2647R1 13 16 16.0.0* 2023.2
범위 기반 for 루프 초기화에서 임시 객체의 수명 확장  ( FTM ) * P2644R1
P2718R0
CWG2659
15 19
선언과 그 위치 찾기 P1787R6
DR11: 람다 후행 반환 타입의 범위 변경 P2036R3
P2579R0
17 2023.2
DR20: 의미 있는 내보내기 P2615R1 15 17 (부분적)
DR20: consteval 상위로 전파되어야 함  ( FTM ) * P2564R3 14 17 16.0.0* 6.7 2024.0
DR98: 유니코드 표준 부록 31을 사용한 C++ 식별자 구문 P1949R7 12 14 14.0.0* 6.4 2022.2
DR11: 중복 속성 허용 attributes P2156R1 11 13 13.1.6* 6.5 23.9
DR20: 기능 테스트 매크로 값 조정 __cpp_concepts P2493R0 12 19.32* 6.4 23.3
DR98: 기존 관행에 맞춰 wchar_t 요구사항 완화 P2460R2 Yes Yes Yes 15.0.0* N/A 2023.2
DR11: 상수 표현식에서 알려지지 않은 포인터와 참조 사용 P2280R4 14 20 *
DR20: 여러분이 찾고 있는 동등 연산자 P2468R2 13 16 16.0.0* 2023.2
DR20: char8_t 호환성 및 이식성 수정  ( FTM ) * P2513R4 13 16 19.34* 16.0.0* 2023.2
DR98/11: 진단 지시문 보고 방식을 명확히 하고 템플릿 컨텍스트에서 값에 의존하지 않는 표현식의 static_assert 를 허용 CWG2518 13 17 16.0*
(부분적)*
19.40*


C++23 기능


논문
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

C++23 라이브러리 기능

번역된 내용: - "Stacktrace library" → "스택트레이스 라이브러리" - "partial" → "부분적" - HTML 태그, 속성, 코드 관련 내용은 그대로 유지 - C++ 관련 용어(FTM, P0881R7, P2301R1 등)는 번역하지 않음 - 모든 포맷팅과 태그 구조는 원본 그대로 보존 **변역 결과:** - 모든 HTML 태그와 속성, ` `, `
`, `` 태그 내부의 텍스트는 그대로 유지됨
- C++ 관련 용어는 번역하지 않음
- FTM(Feature Testing Macro)은 번역하지 않음
- 숫자와 코드 값은 그대로 유지
변경된 부분: - `Feature-testing macro:` → `기능 테스트 매크로:` HTML 태그, 속성, ` ` 태그 내의 `std::invoke_r()`, FTM, P2136R3, 버전 번호 등 C++ 관련 용어와 코드는 번역하지 않고 원본을 유지했습니다. **번역 설명:** - "Heterogeneous erasure overloads for associative containers" → "연관 컨테이너를 위한 이종 삭제 오버로드" - C++ 전문 용어("associative containers", "heterogeneous erasure", "overloads")는 원래 의미를 유지하면서 자연스러운 한국어 기술 용어로 번역 - HTML 태그, 속성, 코드 관련 내용은 그대로 보존 - FTM(Feature Testing Macro)과 같은 약어는 번역하지 않음 - 모든 형식과 구조는 원본과 동일하게 유지 **변경 사항:** - "Printing" → "출력" (C++ 출력 연산에 대한 표준 기술 용어) - HTML 태그, 속성, 코드 블록(` ` 내부)은 원본 그대로 유지 - C++ 관련 용어(volatile, P1147R1 등)는 번역하지 않음 - 버전 번호, 링크, 스타일 속성 등은 변경 없이 보존 번역된 내용: - "Feature-testing macro:" → "기능 테스트 매크로:" - HTML 태그, 속성, ` ` 태그 내의 `<expected>`, FTM, P0323R12, P2549R1 등 C++ 관련 용어는 번역하지 않고 원본 유지 - 숫자 값과 버전 정보는 그대로 보존 번역된 내용: - "Feature-testing macro:" → "기능 테스트 매크로:" - HTML 태그, 속성, ` `, `
`, `` 태그 내부의 내용은 번역하지 않고 원본 유지
- C++ 관련 용어(std::unreachable(), FTM, P0627R6 등)는 번역하지 않음
- 숫자 값과 버전 정보는 원본 그대로 유지
**번역 결과:** **번역 설명:** - `FTM`은 "Feature-testing macro"의 약자이므로 "기능 테스트 매크로"로 번역 - `views::join_with`, `P2441R2`, `__cpp_lib_ranges_join_with` 등 C++ 관련 용어는 원문 유지 - HTML 태그, 속성, 숫자 값 등은 그대로 보존 - `title` 속성 내의 설명 텍스트만 한국어로 번역 번역된 내용: - "Feature-testing macro:" → "기능 테스트 매크로:" - HTML 태그, 속성, 태그 내의 C++ 용어(views::chunk_by), ,
,  태그 내의 내용은 번역하지 않고 원본 유지
- FTM, P2443R1, 버전 번호 등 기술적 용어는 번역하지 않음
번역된 내용: - "Feature-testing macro:" → "기능 테스트 매크로:" - HTML 태그, 속성, ` `, `
`, `` 태그 내부의 내용은 번역하지 않고 원본 유지
- C++ 관련 용어(`flat_set`, `FTM`, `P1222R4`, `__cpp_lib_flat_set` 등)는 번역하지 않음
- 숫자 및 표시 기호(*)는 원본 유지
- 표 서식 및 스타일 속성은 완전히 보존
변경된 부분: - "and" → "및" - "Feature-testing macro:" → "기능 테스트 매크로:" C++ 관련 용어(ranges::find_last, FTM, P1223R5 등)와 HTML 태그, 코드 태그 내 내용은 번역하지 않고 원본을 유지했습니다. **번역 설명:** - "Compatibility between std::tuple and tuple-like objects" → "std::tuple과 튜플-유사 객체 간의 호환성" - "FTM"은 원문 유지 (기술 용어) - "partial" → "부분적"으로 번역 - 모든 HTML 태그와 속성, 링크는 원본 그대로 유지 - C++ 관련 용어(std::tuple, pair, array 등)는 번역하지 않음 - 기술 문서에 적합한 정확하고 전문적인 번역 적용 번역된 내용: - "Feature-testing macro:" → "기능 테스트 매크로:" - C++ 관련 용어(`views::cartesian_product`, `FTM`, `__cpp_lib_ranges_cartesian_product` 등)는 원문 유지 - HTML 태그, 속성, 코드는 그대로 보존 변경된 부분: - `Feature-testing macro:` → `기능 테스트 매크로:` HTML 태그, 속성, ` `, `
`, `` 태그 내부의 텍스트는 번역하지 않았으며, C++ 관련 용어는 원문을 유지했습니다.
**번역 결과:** **번역 설명:** - `FTM`은 "Feature-testing macro"의 약자로 "기능 테스트 매크로"로 번역 - HTML 태그, 속성, ` ` 태그 내의 C++ 코드(`views::enumerate`)는 번역하지 않고 보존 - `title` 속성 내의 텍스트만 한국어로 번역 - 표의 숫자 데이터와 문서 번호(P2164R9)는 원본 유지 **번역 설명:** - HTML 태그와 속성은 그대로 유지 - ` `, `
`, `` 태그 내부가 없으므로 해당 사항 없음
- C++ 전문 용어(input range adaptors, std::counted_iterator)는 번역하지 않음
- "Repairing"은 "수정"으로 전문적으로 번역
- "and"는 "와"로 자연스럽게 연결
- "(partial)"은 "(부분적)"으로 정확히 번역
- 전체적으로 전문적이고 정확한 번역 유지
C++23 기능

문서

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
스택트레이스 라이브러리 ( FTM ) * P0881R7
P2301R1
12 (부분적)*
14*
19.34*
<stdatomic.h> ( FTM ) * P0943R6 12 15 19.31* 14.0.3*
std::is_scoped_enum ( FTM ) * P1048R1 11 12 19.30* 13.0.0*
std::basic_string::contains() , std::basic_string_view::contains() ( FTM ) * P1679R3 11 12 19.30* 13.0.0*
std::to_underlying ( FTM ) * P1682R3 11 13 19.30* 13.1.6*
time_point<>::clock 에 대한 요구사항 완화 P2212R2 N/A N/A N/A N/A
Allocator 인터페이스에서 크기 피드백 제공 ( FTM ) * P0401R6 15 19.30* 14.0.3*
<spanstream> : std::span 기반 버퍼를 사용하는 문자열 스트림  ( FTM ) * P0448R4 12 19.31*
std::out_ptr() , std::inout_ptr() ( 기능 테스트 매크로 ) * P1132R8 14 19 19.30*
constexpr type_info::operator==() ( FTM ) * P1328R1 12 17 19.33* *
19.34*
15.0.0*
std::stack std::queue 에 대한 반복자 쌍 생성자 ( FTM ) * P1425R4 12 14 19.31* 14.0.3*
컨테이너 추론 가이드에서 할당자를 위한 비-추론 문맥 P1518R2 12 * 13 * 19.31* * 13.1.6* *
ranges::starts_with() ranges::ends_with() ( FTM ) * P1659R3 17 (부분적)*
18
19.31* 16.0.0*
std::basic_string std::basic_string_view nullptr 로부터의 생성 금지 P2166R1 12 13 19.30* 13.1.6*
std::invoke_r() ( FTM ) * P2136R3 12 17 19.31* 15.0.0*
범위 생성자 for std::basic_string_view P1989R2 11 14 19.30* 14.0.3*
std::pair 의 전달 참조 생성자 를 위한 기본 템플릿 인수 P1951R1 14 14 19.30* 14.0.3*
가비지 컬렉션 및 도달 가능성 기반 메모리 누수 감지 제거 ( 라이브러리 지원 ) P2186R2 12 14 19.30* 14.0.3*
zip: views::zip , views::zip_transform , views::adjacent , 및 views::adjacent_transform ( FTM ) * P2321R2 13 15 (부분)* 19.33* (부분)* * *
19.37*
14.0.3*
연관 컨테이너를 위한 이종 삭제 오버로드  ( FTM ) * P2077R3 19.32*
std::byteswap() ( FTM ) * P1272R4 12 14 19.31* 14.0.3*
출력 volatile T * P1147R1 11.3 14 19.31* 14.0.3*
basic_string::resize_and_overwrite() ( FTM ) * P1072R10 12 14 19.31* 14.0.3*
std::optional 모나딕 연산 ( FTM ) * P0798R8 12 14 19.32* 14.0.3*
std::move_only_function ( FTM ) * P0288R9 12 19.32*
std::exchange 에 조건부 noexcept 명세를 추가 P2401R0 12 14 19.25* 14.0.3*
std::span std::basic_string_view TriviallyCopyable 이어야 함을 요구 P2251R1 Yes Yes Yes Yes
"C 헤더"의 상태 명확화 P2340R1 Yes Yes Yes Yes
<expected> ( FTM ) * P0323R12
P2549R1
12 16 19.33* 15.0.0*
<cmath> <cstdlib> 에 대한 constexpr ( FTM ) * P0533R9 4.6 (부분적)*
std::unreachable() ( FTM ) * P0627R6 12 15 19.32* 14.0.3*
사용 중단 예정 std::aligned_storage std::aligned_union P1413R3 13 16 19.33*
std::reference_constructs_from_temporary & std::reference_converts_from_temporary ( FTM ) * P2255R2 13 (부분적)*
14
21 (부분적)*
constexpr std::unique_ptr ( FTM ) * P2273R3 12 16 19.33* 15.0.0*
범위로부터 컨테이너와 문자열을 생성하기 위해 ranges::to() , 태그된 생성자들, 삽입 및 할당 멤버 함수들 사용  ( FTM ) * ( FTM ) * P1206R7 14 (부분 지원)*
15
17 19.34* 15.0.0*
사용자 정의 범위 어댑터에 대한 파이프 지원 ( ranges::range_adaptor_closure , std::bind_back )  ( FTM ) * ( FTM ) * P2387R3 13 (부분적)*
14
19 19.34*
ranges::iota() , ranges::shift_left() , 및 ranges::shift_right() ( FTM ) * ( FTM ) * P2440R1 13 (부분적)* 19.34*
views::join_with ( FTM ) * P2441R2 13 19.34*
views::join_with ( 기능 테스트 매크로 ) * P2441R2 13 19.34*
views::chunk views::slide ( FTM ) * ( FTM ) * P2442R1 13 19.33*
views::chunk_by ( FTM ) * P2443R1 13 18 19.33* 16.0.0*
std::mdspan : 비소유 다차원 배열 참조  ( FTM ) * P0009R18
P2599R2
P2604R0
P2613R1
P2763R1
17 (부분적)*
18
19.39* 15.0.0*
<flat_map> ( FTM ) * P0429R9 15 20
<flat_set> ( FTM ) * P1222R4 15 21
ranges::find_last() , ranges::find_last_if() , 및 ranges::find_last_if_not() ( FTM ) * P1223R5 13 19 19.36*
독립형 라이브러리: 쉬움 <utility> , <ranges> , 및 <iterator> P1642R11 13 * N/A
views::stride ( FTM ) * P1899R3 13 19.34*
std::tuple 과 튜플-유사 객체 간의 호환성  ( FTM ) * P2165R4 14 2.9 (부분적)* 19.36* (부분적) *
19.37*
부분적*
상수 반복자, 센티넬 및 범위 수정. views:: as_const ( FTM ) * P2278R4 13 19.35* (부분적)*
19.36*
포맷팅 범위  ( FTM ) * P2286R8 15 (부분적)*
15.2
16 19.37* (부분적)*
19.39* (부분적)*
19.41* (부분적)*
19.42*
15.0.0*
기본 컨테이너 포맷팅 개선 ( FTM ) * P2585R1 15 16 (부분적)*
17
19.42* 15.0.0*
서식화된 출력 라이브러리 <print> ( FTM ) * P2093R14
P2539R4
14 17 (부분적)*
18
19.37* 15.0.0* *
16.0.0*
포맷팅 std::thread::id std::stacktrace ( FTM ) * P2693R1 14 17 (부분적)* 19.38* 15.0.0*
constexpr std::to_chars() std::from_chars() 의 정수형 오버로드에 대한 FTM ( * ) P2291R3 13 16 19.34* 15.0.0*
ranges::contains() ranges::contains_subrange() ( FTM ) * P2302R4 13 18 (부분적)*
19
19.34* 16.0.0* *
범위 폴드 알고리즘 ( FTM ) * P2322R6 13 19.35*
views::cartesian_product ( FTM ) * P2374R4
P2540R1
13 19.37*
비교 개념들에 이동 전용(move-only) 타입 지원 추가 ( equality_comparable , totally_ordered , three_way_comparable )  ( FTM ) * P2404R3 19.36*
범위 반복자를 비범위 알고리즘의 입력으로 사용  ( FTM ) * P2408R5 19.34*
constexpr std::bitset ( FTM ) * P2417R2 13 16 19.34* 15.0.0*
basic_string::substr() && P2438R2 16 19.34* 15.0.0*
views::as_rvalue ( FTM ) * P2446R2 13 16 19.34* 15.0.0*
표준 라이브러리 모듈  ( FTM ) * P2465R3 15* 17 (부분)* 19.35*
(부분)*
19.36*
std::forward_like() ( FTM ) * P2445R1 14 16 19.34* 15.0.0*
std::fstream 을 위한 배타적 모드 지원 ( FTM ) * P2467R1 12 18 19.36* 16.0.0*
views::repeat ( FTM ) * P2474R2 13 17 19.36* 15.0.0*
범위 어댑터를 이전 전용(move-only) 타입을 허용하도록 완화  ( FTM ) * P2494R2 14 17 19.34* 15.0.0*
std::basic_string_view 범위 생성자 는 명시적이어야 함 P2499R0 12.2 16 19.34* 15.0.0*
std::generator : 범위를 위한 동기 코루틴 생성기  ( FTM ) * P2502R2
P2787R0
14 19.43*
std::apply 에 조건부 noexcept 명세를 추가 P2517R1 10 18 19.34* 16.0.0*
명시적 수명 관리 ( std::start_lifetime_as )  ( FTM ) * P2590R2
P2679R2
chrono 타입의 지역화된 포맷팅에서 인코딩 처리 명확화  ( FTM ) * P2419R2 15* 19.34* *
std::move_iterator 는 항상 input_iterator 가 아니어야 함 ( FTM ) * P2520R0 12.3* 17* 19.34* * 15.0.0*
명시적 객체 매개변수 호출 연산자에 대한 연역 가이드 업데이트 LWG3617 14 19.34*
static operator ( ) 에 대한 추론 가이드 업데이트 P1169R4 13 16 19.39* 15.0.0*
확장 부동 소수점 타입에 대한 표준 이름 및 라이브러리 지원 P1467R9 13 19.37* *
std::expected 에 대한 모나딕 연산 ( FTM ) * P2505R5 13 17 19.36* 15.0.0*
views::enumerate ( FTM ) * P2164R9 13 19.37*
views::enumerate ( 기능 테스트 매크로 ) * P2164R9 13 19.37*
std::is_implicit_lifetime ( FTM ) * P2674R1 20
std::common_reference_t std::reference_wrapper 는 참조 타입이어야 함  ( FTM ) * ( FTM ) * P2655R3 19.37*
사용자의 std::allocator_traits 특수화 금지 P2652R2 19 19.37*
사용 중단 std::numeric_limits::has_denorm P2614R2 18 19.37* 16.0.0*
view s 의 다중 매개변수 생성자를 explicit 로 만들기 P2711R1 17 (부분)* 19.36* * 15.0.0*
DR20: Ranges를 살짝 완화  ( FTM ) * P2609R3 15 20 19.37*
DR20: 적절한 평탄화를 위한 스태싱 반복자 보관 P2770R0 14 18 19.37*
DR17: std::visit() std::variant 에서 파생된 클래스들에 대한 ( FTM ) * P2162R2 11.3 13 19.20* *
19.30*
13.1.6*
DR20: 조건부로 빌린 범위 P2017R1 11 16 19.30*
DR20: input range adaptors std::counted_iterator 수정 P2259R1 12 19.30* (부분적)*
19.31*
DR20: views::join 는 모든 범위의 뷰를 결합해야 함 P2328R1 11.2 15 19.30* 14.0.3*
DR20: view default_initializable 를 요구하지 않음 ( FTM ) * P2325R3 11.3 16 19.30* 15.0.0*
DR20: 범위 어댑터 객체는 인수를 값으로 바인딩합니다 P2281R1 11 14 19.29 (16.10)*
(부분적)*
19.31*
14.0.3*
DR20: constexpr for std::optional and std::variant ( FTM ) * ( FTM ) * P2231R1 11.3 (부분적)*
12
13 (부분적)*
19
19.31* 13.1.6* (부분적)
DR20: views::lazy_split 및 재설계된 views::split P2210R2 12 16 19.31* 15.0.0*
DR20: 수정 ranges::istream_view P2432R1 12 16 19.31* 15.0.0*
DR20: view 소유권을 가진  ( FTM ) * P2415R2 12 14 19.31* 14.0.3*
DR20: chrono 포매터의 로케일 처리 수정  ( FTM ) * P2372R3
P2418R2
13 19.31*
DR20: 정수 클래스 타입 정리 P2393R1 19.32*
DR20: 컴파일 타임 형식 문자열 검사; std::format() 계열의 바이너리 코드 크기 감소  ( FTM ) * P2216R3 13 14 (부분적)*
15
19.32* 14.0.3*
DR20: 비 const-포맷 가능 타입에 대한 지원을 std::format 에 추가 P2418R2 13 15 19.32* 14.0.3*
DR20: std::basic_format_string P2508R1 13 15 19.35* 14.0.3*
DR20: Poison Pills는 너무 독성이 강함  ( FTM ) * P2602R2 14 19 19.36*
DR20: std::format 채움 문자 허용 사항 P2572R1 14 17 19.37*
DR20: std::format 의 너비 추정 기능 개선 P2675R1 14 17 19.38*
DR20: std::barrier 의 페이즈 완료 보장  ( FTM ) * P2588R3 19.28 (16.8)* *
19.36*


C++23 기능


논문
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*

* - 별표로 표시된 셀에 마우스를 올리면 * 추가 팝업 노트를 볼 수 있습니다.
DR nn - "DR" 뒤의 숫자 nn 은 결함 보고서가 적용되는 대상 C++ 개정판을 나타냅니다. 예: DR20 → C++20.

외부 링크

1. C++23 - 위키백과