Namespaces
Variants

C++26

From cppreference.net

C++ 표준의 다음 세대.

현재 C++26의 IS 일정: P1000R6 (2024-05-14).

목차

새로운 언어 기능

새로운 라이브러리 기능

새로운 모듈

새로운 헤더

**참고:** 제공된 웹페이지 내용은 이미 HTML 태그와 C++ 관련 용어( 태그 내부)를 포함하고 있으며, 이러한 요소들은 번역에서 제외하도록 지시받았습니다. 따라서 원본 텍스트에서 번역이 필요한 실제 한국어 콘텐츠가 존재하지 않아, 출력 결과가 입력과 동일하게 유지되었습니다.

C 호환성 헤더:

폐기된 기능

제거된 기능

사용 중단된 기능

결함 보고서

컴파일러 지원

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

C++26 핵심 언어 기능

**번역 결과:** - "Variadic friends" → "가변 인자 프렌드" - "FTM" → "FTM" (C++ 특수 용어로 번역하지 않음) - HTML 태그, 속성, ,
,  태그 내 내용은 번역하지 않고 원본 유지
- C++ 관련 용어는 정확성과 전문성을 유지하며 번역
**변역된 텍스트:** - "Trivial relocatability" → "단순 재배치 가능성" - "FTM"은 C++ 용어이므로 그대로 유지 - "P2786R13"은 문서 번호이므로 그대로 유지 - 숫자 "21"은 그대로 유지 - 모든 HTML 태그, 속성, title 속성 내 텍스트는 원본 그대로 보존 **변역 설명:** - "Trivial unions" → "트리비얼 유니언" (C++ 용어는 원형 유지) - HTML 태그, 속성, 링크, FTM, P3074R7 등은 그대로 보존 - 모든 태그 구조와 스타일 속성이 완전히 유지됨 - 코드 관련 내용은 번역하지 않음
C++26 기능

문서

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
DR98: 렉싱에서 정의되지 않은 동작 제거 P2621R3 3.3 16.0.0*
DR98: 인코딩 불가능한 문자열 리터럴을 비정형으로 만들기 P1854R4 14 14 16.0.0*
평가되지 않은 문자열 P2361R6 14 17 (부분적)*
18
16.0.0*
기본 문자 집합에 @ , $ , 그리고 ` 추가 기본 문자 집합 P2558R2 15 Yes 16.0.0*
constexpr void*로부터의 캐스트 void * ( FTM ) * P2738R1 14 17
DR20: 표준 속성의 무시 가능성에 관하여 P2552R3 15
DR11: 중괄호 초기화자를 위한 정적 저장소 P2752R3 14
사용자 생성 static_assert 메시지  ( FTM ) * P2741R3 14 17
이름 없는 플레이스홀더 변수 ( FTM ) * P2169R4 14 18
팩 인덱싱 ( FTM ) * P2662R3 15 19
사용 중단된 열거형 산술 변환 제거 P2864R2 14 18
DR11/20: 템플릿 매개변수 초기화 P2308R1 9 18
반환된 참조를 임시 객체 에 바인딩하는 것을 금지 P2748R5 14 19
구조적 바인딩을 위한 속성 ( FTM ) * P0609R3 15 19
초기화되지 않은 읽기에 대한 오류 동작, [[ indeterminate ]] 속성 P2795R5
= delete ( "reason" ) ; ( 기능 테스트 매크로 ) * P2573R2 15 19
Variadic friends ( FTM ) * P2893R3 15 20
DR98: 집계 초기화 에서 중괄호 생략 규칙 명확화 P3106R1 17
DR20: 모듈 선언을 매크로로 허용하지 않음 P3034R1 15
DR11: 사소한 무한 루프는 정의되지 않은 동작이 아님 P2809R3 14 19
constexpr 배치 new  ( FTM ) * ( FTM ) * P2747R2 15 20
구조화된 바인딩 선언을 조건으로 사용  ( FTM ) * P0963R3 15 6 (부분적)*
21
제약 조건 의 순서 지정 ( 폴드 표현식 포함) ( FTM ) * P2963R3 19
불완전한 타입에 대한 포인터 삭제는 올바르지 않은 형식이어야 함 P3144R2 15 19 6.7
구조화된 바인딩 을 도입할 수 있음 ( FTM ) * P1061R10 21
constexpr 구조화된 바인딩 constexpr 변수에 대한 참조 P2686R5 6.7
constexpr 예외 : [1] , [2] ( FTM ) * P3068R6
옥스퍼드 가변 쉼표 P3176R1 15 20
사용 중단된 배열 비교 제거 P2865R6 15 20
#embed ( 기능 테스트 매크로 ) * P1967R14 15 19 *
개념 및 변수 템플릿 템플릿 매개변수  ( FTM ) * P2841R7
단순 재배치 가능성 ( FTM ) * P2786R13 21 *
트리비얼 유니언  ( FTM ) * P3074R7
관찰 가능 체크포인트 P1494R5
계약 ( FTM ) * P2900R14


C++26 기능


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

C++26 라이브러리 기능

**변역 결과:** - HTML 태그와 속성은 그대로 유지 - ` `, `
`, `` 태그 내부 텍스트는 번역하지 않음
- C++ 관련 용어는 번역하지 않음
- 전문적이고 정확한 번역 적용
**번역된 텍스트:**
- "Read-Copy Update" → "읽기-복사 업데이트"
- "FTM" → "FTM" (기술 용어로 그대로 유지)
- "Feature-testing macro" → "기능 테스트 매크로"
- 문서 제목과 링크 텍스트는 기술 문서에 맞게 전문적으로 번역
**변역 결과:** **변역 설명:** - HTML 태그와 속성은 그대로 유지 - ` ` 내의 `std::is_within_lifetime`은 C++ 특정 용어이므로 번역하지 않음 - `FTM`은 약어이므로 번역하지 않음 - `P2641R4`는 문서 번호이므로 번역하지 않음 - `title` 속성의 텍스트만 한국어로 번역: - "cpp/feature test" → "C++ 기능 테스트" - "Feature-testing macro:" → "기능 테스트 매크로:" **번역 결과:** **번역 설명:** - `std::atomic_ref::address()`와 같은 C++ 관련 용어는 번역하지 않고 원문 유지 - `FTM`은 약어이므로 번역하지 않고 원문 유지 - `P2835R7`은 문서 번호이므로 번역하지 않고 원문 유지 - `Feature-testing macro`만 "기능 테스트 매크로"로 정확히 번역 - HTML 태그와 속성, 구조는 완전히 보존 **참고:** 제공된 HTML 코드에는 번역이 필요한 일반 텍스트가 포함되어 있지 않습니다. 모든 내용이 이미 C++ 관련 용어, HTML 태그, 속성, 링크 텍스트 등으로 구성되어 있어 번역이 필요하지 않은 요소들입니다.
C++26 기능

문서

GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
<charconv> 함수들의 성공 또는 실패 테스트  ( FTM ) * P2497R0 14 18 16.0.0*
std::text_encoding : 텍스트 인코딩 식별  ( FTM ) * P1885R12
P2862R1
14
std::to_string std::to_wstring 의 산술 연산자 오버로드가 std::format 을 사용함 ( FTM ) * P2587R3 14
형식 검사 포맷 인수  ( FTM ) * P2757R3 15
포인터 서식 지정  ( FTM ) * P2510R3 14 * 17 * 19.40* *
해싱 지원 for std::chrono 값 클래스들  ( FTM ) * P2592R3
<rcu> : Read-Copy Update ( FTM ) * P2545R4
<hazard_pointer> : Hazard pointers ( FTM ) * P2530R3
ADL-proof std::projected P2538R1 14 * 18 * 19.38* * 16.0.0*
constexpr 안정 정렬 ( FTM ) * P2562R1 15 21
멤버 함수 std::basic_format_arg::visit() ( FTM ) * P2637R3 15 19
멤버 함수 std::variant::visit() ( FTM ) * P2637R3 15 18
std::is_within_lifetime ( FTM ) * P2641R4
std::is_within_lifetime ( FTM ) * P2641R4
연관 컨테이너에 나머지 이종(heterogeneous) 오버로드 추가  ( FTM ) * P2363R5
비정렬 연관 컨테이너에서 std::weak_ptr 를 키로 사용할 수 있도록 함  ( FTM ) * P1901R2
파일 스트림의 네이티브 핸들  ( FTM ) * P1759R6 14 18 16.0.0*
문자열 스트림과 std::string_view 연동 ( FTM ) * P2495R3 19
std::bitset std::string_view 인터페이싱 ( FTM ) * P2697R1 18 16.0.0*
<cmath> <complex> 에 대한 추가 constexpr 지원 ( FTM ) * ( FTM ) * P1383R2 4.6 (부분적)*
비율에 새로운 2022 SI 접두어 추가: std::quecto , std::ronto , std::ronna , 및 std::quetta ( FTM ) * P2734R0 14 17 *
std::function_ref : 타입 삭제된 호출 가능 참조  ( FTM ) * P0792R14
std::copyable_function ( FTM ) * P2548R6 16
std::bind_front , std::bind_back , 그리고 std::not_fn 가 NTTP 호출 가능 객체에 적용됨  ( FTM ) * ( FTM ) * ( FTM ) * P2714R1
std::submdspan() ( FTM ) * P2630R4
P3355R1
독립형 언어: 선택 사항 ::operator new P2013R5 N/A
독립 실행 환경 std::char_traits , std::errc 및 다음 헤더의 기능들: <charconv> , <cstdlib> , <cstring> , <cwchar> ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2338R4 N/A
추가 독립 실행형 기능들  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2198R7 해당 없음
포화 산술 ( FTM ) * P0543R3 14 18 16.0.0*
<debugging> : 디버깅 지원 ( FTM ) * P2546R5
P2810R4
<linalg> : BLAS 기반의 자유 함수 선형 대수 인터페이스 ( FTM ) * P1673R13
P3050R2
P3222R0
assert() 매크로 사용자 친화적으로 만들기 P2264R7
런타임 형식 문자열  ( FTM ) * P2918R2 14 18 16.0.0*
std::span 이니셜라이저 리스트에 대한  ( FTM ) * P2447R6 15 18 16.0.0*
std::span::at() ( FTM ) * P2821R5 14 18 16.0.0*
std::complex 에 튜플 프로토콜 추가됨 ( FTM ) * P2819R2 15 19
std::generate_canonical 에 대한 새로운 명세 P0952R2 19.42*
사용 중단된 typedef std::allocator::is_always_equal 제거 P2868R3 15 18 16.0.0*
인수를 받지 않는 std::basic_string::reserve() 함수 오버로드 제거 P2870R3 18 16.0.0*
사용 중단된 유니코드 변환 패싯 제거 ( <codecvt> ) P2871R3 18 16.0.0*
독립형: std::strtok 제거 ( FTM ) * P2937R0 14 19.40*
독립형 라이브러리: 부분 클래스들  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2407R5 14 19.42*
독립형 라이브러리: std::inout , std::expected , std::span ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P2833R2 14 19.42*
DR23: std::basic_const_iterator 는 해당 기본 타입의 변환 가능성을 따라야 함  ( FTM ) * P2836R1
P2950R0
14 19.40*
DR20: std::make_format_args 이제 전달 참조 대신 좌측값 참조만 수용합니다 P2905R2 14 18 19.40* 16.0.0*
DR20: 코드 유닛을 정수로 포맷팅하는 문제 수정  ( FTM ) * P2909R4 13.3 18 19.40* 16.0.0*
views::concat ( FTM ) * P2542R8 15
문자열과 strings string views 의 연결 ( FTM ) * P2591R5 15 19
알고리즘에 대한 목록 초기화 활성화 algorithms ( FTM ) * P2248R8
P3217R0
15
std::ranges::generate_random ( FTM ) * P1068R11
비교 연산자 for std::reference_wrapper , and constraints for comparisons of std::pair , std::tuple , std::optional , and std::variant ( FTM ) * ( FTM ) * P2944R3 14 19 (부분적) *
패딩된 mdspan 레이아웃  ( FTM ) * P2642R6
정수 상수를 사용한 std::span std::mdspan 의 새로운 CTAD P3029R1 19
원자적 최댓값 및 최솟값  ( FTM ) * P0493R5
std::formatter<std::filesystem::path> ( FTM ) * P2845R8
std::println() 로 빈 줄 출력하기 ( FTM ) * P3142R0 14 * 19 * 19.41* *
비사용 중단화 std::polymorphic_allocator::destroy P2875R4 15 19.41*
사용 중단된 strstreams 제거 P2867R2 19
사용 중단된 std::shared_ptr 원자적 접근 API 제거 P2869R4
제거 중 std::wstring_convert P2872R3 19
DR23: 효율적인 구현을 허용하는 std::print ( FTM ) * P3107R5
P3235R3
19.43*
실행 제어 라이브러리 ( FTM ) * P2300R10
P3396R0
std::inplace_vector : 고정된 용량을 가진 동적 크기 조정 벡터  ( FTM ) * P0843R14
std::philox_engine : 카운터 기반 난수 엔진  ( FTM ) * P2075R6
std::optional 범위 지원  ( FTM ) * P3168R2
std::is_virtual_base_of : 가상 기본 클래스 검출을 위한 타입 특성  ( FTM ) * P2985R0 15 20
std::dims for std::mdspan ( FTM ) * P2389R2 19
DR11: std::ignore 의 타입에 대한 공식 명세 P2968R2 15 19 19.42*
DR20: 간접 호출 가능 개념들에서 공통 참조 요구사항 제거  ( FTM ) * P2997R1 15 19 19.42*
std::is_trivial std::is_trivial_v 사용 중단 P3247R2 15 21
DR20: 알고리즘 함수 객체 P3136R1 Yes 14 19.39* 14.0.3*
std::ranges::cache_latest_view ( FTM ) * P3138R5 15
std::expected 동등 연산자 제약 ( FTM ) * P3379R0 15
std::aligned_accessor : 포인터 초과 정렬을 표현하는 std::mdspan 액세서  ( FTM ) * P2897R7 21
std::is_sufficiently_aligned : 포인터의 정렬 사전 조건을 검사함 ( FTM ) * P2897R7 21
std::atomic_ref::address() ( FTM ) * P2835R7
std::atomic_ref::address() ( FTM ) * P2835R7
DR11/20: std::atomic std::atomic_ref 에서의 cv 한정 타입 P3323R1 19.44*
constexpr std::atomic std::atomic_ref ( FTM ) * P3309R3
constexpr 특수화된 메모리 알고리즘 을 위한 ( FTM ) * P3508R0
P3369R0
15
<stdbit.h> <stdckdint.h> P3370R1 15
<simd> : 데이터 병렬 타입 ( FTM ) * ( FTM ) * P1928R15
P3430R3
P3441R2
P3287R3
P2663R7
P2933R4
실행 환경 을 생성하기 위한 유틸리티 P3325R5
constexpr 예외 타입에 대한 constexpr 지원, 예를 들어 std::bad_alloc , std::bad_cast 등.  ( FTM ) * P3068R6
P3378R2
사소한 재배치 가능성 특성과 연산  ( FTM ) * P2786R13
무력화 및 사용 중단 std::memory_order::consume P3475R1
std::monostate <utility> 에 추가 P0472R3 15 21 19.50*
std::indirect ( FTM ) * P3019R14
std::polymorphic ( FTM ) * P3019R14
추가 constexpr 컨테이너 및 컨테이너 어댑터 지원:

std::deque , std::flat_map , std::flat_multimap , std::flat_set , std::flat_multiset , std::forward_list , std::list , std::map , std::multimap , std::queue , std::priority_queue , std::set , std::multiset , std::stack , std::unordered_map , std::unordered_multimap , std::unordered_set , 및 std::unordered_multiset
( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) *

P3372R3
constexpr std::inplace_vector 비트리비얼 타입을 위한  ( FTM ) * P3074R7
std::ranges::to_input_view ( FTM ) * P3137R3 15
std::ranges::approximately_sized_range std::ranges::reserve_hint ( FTM ) * P2846R6
<hive> : 삭제된 요소의 메모리 위치를 재사용하는 버킷 기반 컨테이너 ( FTM ) * P0447R28
<contracts> : 계약 위반 처리 지원  ( FTM ) * P2900R14
표준 라이브러리 강화  ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * P3471R4 15 (부분적)* 19.44* (부분적)*
독립형 라이브러리: <algorithm> , <numeric> , <random> , ( <execution> , <memory> )
( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) * ( FTM ) *
P2976R1
DR20: 연속 반복자를 포인터로 변환 P3349R0 15


C++26 기능


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

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

외부 링크

1. C++26 - 위키백과