Пространства имён
Варианты
Действия

Поддержка компиляторами C++23

Материал из cppreference.com

[править]Основные возможности языка C++23

Возможность C++23
 
Статья(и)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ для AIX
IBM Open XL C++ для z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (бывшая PGI)*
Nvidia nvcc
Литеральный суффикс для (знакового) size_tP0330R811 13

<span title=" неизвестный номер версии">13.3.0*</span>

Делает () ещё более необязательными для лямбдP1102R211 13

<span title=" неизвестный номер версии">13.3.0*</span>

6.3
if constevalP1938R312
Удалена Поддержка Сборки Мусора P2186R212
Синтаксис Идентификаторов C++, использующий Дополнение Стандарта Юникода 31 P1949R714
Разрешить Повторяющиеся Атрибуты P2156R1
Сужение контекстных преобразований в static_assert и constexpr ifP1401R513 (частично)*
14
Обрезка пробелов перед объединением строк P2223R2
Размещение в памяти членов структуры/класса обязанно соответствовать порядку их объявления P1847R4Да
Конкатенация строковых литералов разных типов (напр. u8"" и L"") запрещена P2201R1Да Да Да Да Да Да
Выведение this P0847R719.32*
(частично)*
6.3
auto(x) и auto{x} P0849R8
Изменение области видимости конечного возвращаемого типа лямбды P2036R3
#elifdef и #elifndefP2334R112 13
Нелитеральные переменные (а также метки и goto) в constexpr функциях P2242R312
Взаимосогласованное кодирование символьных литералов P2316R2Да Да Да
Наборы символов и кодировки P2314R4Да
Расширенная инструкция инициализации, разрешающее объявление псевдонима P2360R012 14
Оператор многомерной индексации, нарп. v[x,y,z] P2128R6
Атрибуты лямбда-выражений P2173R19 13
DR: Отсутствуют макросы тестирования функциональностей для основных документов P2493R012


C++23 возможность
 
Страница(цы)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XL C++
IBM Open XL C++ для AIX
IBM Open XL C++ для z/OS
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Nvidia HPC C++ (бывшая PGI)*
Nvidia nvcc

[править]Возможности библиотеки C++23

C++23 возможность
 
Страница(цы)
 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ для AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
Библиотека StacktraceP0881R7P2301R1
<stdatomic.h>P0943R612 19.31*
std::is_scoped_enumP1048R111 12
contains() для

basic_string / basic_string_view

P1679R311 12
std::to_underlyingP1682R311 13 19.30*
std::visit для классов, производных от std::variantP2162R212 13 19.20**
19.30*
Смягчающие требования для time_point<>::clockP2212R2Н/ДН/Д
DR: Условно заимствованные диапазоны P2017R119.30*
DR: Восстановление адаптеров входного диапазона и std::counted_iteratorP2259R1
Предоставление обратной связи по размеру в интерфейсе Allocator'а P0401R619.30*
<spanstream> : строковый поток с буфером на основе std::spanP0448R419.31*
std::out_ptr(), std::inout_ptr()P1132R8
constexprtype_info::operator==()P1328R1
Конструкторы итераторов пар для std::stack и std::queueP1425R4
Невыводимый контекст для аллокаторов в принципах вывода для контейнеров P1518R213
ranges::starts_with() и ranges::ends_with()P1659R3
Запрещение создания std::basic_string и std::basic_string_view из nullptrP2166R1
std::invoke_r()P2136R312 19.31*
Диапазонный конструктор для std::basic_string_viewP1989R211 14 19.30*
Аргументы шаблона по умолчанию для конструктора пересылки для pairP1951R112 14 19.30*
Удаление Сборки Мусора и Обнаружения Утечек на Основе Доступности (поддержка библиотеки) P2186R212
DR: views::join должен присоединяться ко всем видам диапазонов P2328R119.30*
DR: view не требует default_initializableP2325R3
DR: Объекты адаптера диапазона связывают аргументы по значению P2281R119.29 (16.10)*
(частично)*
19.31*
DR: constexpr для std::optional и std::variantP2231R113 (частично)*19.31*
DR: Улучшение std::format()P2216R3
DR: views::lazy_split и переработанная split_viewP2210R219.31*

<--

Псевдоним std::pmr::stacktraceP2301R1

-->

zip: views::zip, views::zip_transform, views::adjacent и views::adjacent_transformP2321R215 (частично)*
Гетерогенные перегрузки стирания для ассоциативных контейнеров P2077R319.32*
std::byteswap()P1272R412 14 19.31*
Печатьvolatile T*P1147R112 14 19.31*
basic_string::resize_and_overwrite P1072R1012
Одновалентные операции для std::optionalP0798R812
std::move_only_functionP0288R912
Добавлена условная noexcept спецификация в std::exchangeP2401R012 14 19.25*
Требует, чтобы span и basic_string_view были TriviallyCopyableP2251R1Да Да Да Да
Очистка целочисленных типов P2393R119.32*
Уточнение статуса “заголовков C” P2340R1
DR: Исправлен views::istreamP2432R119.31*
DR: Добавлена поддержка для std::generator подобных типов в std::formatP2418R219.32*
DR: Что такое viewP2415R212 14 19.31*
DR: исправление обработки локали в форматерах chrono P2372R3
DR: Очистка типов целочисленного класса P2393R119.32*
std::expectedP0323R12
constexpr for <cmath> and <cstdlib>P0533R9
std::unreachable()P0627R615 19.32*
Устаревшие std::aligned_storage и std::aligned_unionP1413R3
Свойство типа для обнаружения привязки ссылки к временному объекту P2255R2
constexprstd::unique_ptrP2273R319.33*
ranges::toP1206R7
Поддержка каналов для определяемых пользователем адаптеров диапазона P2387R3
ranges::iota, ranges::shift_left и ranges::shift_rightP2440R1
views::join_withP2441R2
views::chunk и views::slideP2442R1
views::chunk_byP2443R119.33*
C++23 возможность
 
Страница(цы)
 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ для AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*
close