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

Поддержка компиляторами 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_t P0330R8 11 13

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

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

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

6.3
if consteval P1938R3 12
Удалена Поддержка Сборки Мусора P2186R2 12
Синтаксис Идентификаторов C++, использующий Дополнение Стандарта Юникода 31 P1949R7 14
Разрешить Повторяющиеся Атрибуты P2156R1
Сужение контекстных преобразований в static_assert и constexpr if P1401R5 13 (частично)*
14
Обрезка пробелов перед объединением строк P2223R2
Размещение в памяти членов структуры/класса обязанно соответствовать порядку их объявления P1847R4 Да
Конкатенация строковых литералов разных типов (напр. u8"" и L"") запрещена P2201R1 Да Да Да Да Да Да
Выведение this P0847R7 19.32*
(частично)*
6.3
auto(x) и auto{x} P0849R8
Изменение области видимости конечного возвращаемого тип�� лямбды P2036R3
#elifdef и #elifndef P2334R1 12 13
Нелитеральные переменные (а также метки и goto) в constexpr функциях P2242R3 12
Взаимосогласованное кодирование символьных литералов P2316R2 Да Да Да
Наборы символов и кодировки P2314R4 Да
Расширенная инструкция инициализации, разрешающее объявление псевдонима P2360R0 12 14
Оператор многомерной индексации, нарп. v[x,y,z] P2128R6
Атрибуты лямбда-выражений P2173R1 9 13
DR: Отсутствуют макросы тестирования функциональностей для основных документов P2493R0 12


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*
Библиотека Stacktrace P0881R7 P2301R1
<stdatomic.h> P0943R6 12 19.31*
std::is_scoped_enum P1048R1 11 12
contains() для

basic_string / basic_string_view

P1679R3 11 12
std::to_underlying P1682R3 11 13 19.30*
std::visit для классов, производных от std::variant P2162R2 12 13 19.20**
19.30*
Смягчающие требования для time_point<>::clock P2212R2 Н/Д Н/Д
DR: Условно заимствованные диапазоны P2017R1 19.30*
DR: Восстановление адаптеров входного диапазона и std::counted_iterator P2259R1
Предоставление обратной связи по размеру в интерфейсе Allocator'а P0401R6 19.30*
<spanstream> : строковый поток с буфером на основе std::span P0448R4 19.31*
std::out_ptr(), std::inout_ptr() P1132R8
constexpr type_info::operator==() P1328R1
Конструкторы итераторов пар для std::stack и std::queue P1425R4
Невыводимый контекст для аллокаторов в принципах вывода для контейнеров P1518R2 13
ranges::starts_with() и ranges::ends_with() P1659R3
Запрещение создания std::basic_string и std::basic_string_view из nullptr P2166R1
std::invoke_r() P2136R3 12 19.31*
Диапазонный конструктор для std::basic_string_view P1989R2 11 14 19.30*
Аргументы шаблона по умолчанию для конструктора пересылки для pair P1951R1 12 14 19.30*
Удаление Сборки Мусора и Обнаружения Утечек на Основе Доступности (поддержка библиотеки) P2186R2 12
DR: views::join должен присоединяться ко всем видам диапазонов P2328R1 19.30*
DR: view не требует default_initializable P2325R3
DR: Объекты адаптера диапазона связывают аргументы по значению P2281R1 19.29 (16.10)*
(частично)*
19.31*
DR: constexpr для std::optional и std::variant P2231R1 13 (частично)* 19.31*
DR: Улучшение std::format() P2216R3
DR: views::lazy_split и переработанная split_view P2210R2 19.31*

<--

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

-->

zip: views::zip, views::zip_transform, views::adjacent и views::adjacent_transform P2321R2 15 (частично)*
Гетерогенные перегрузки стирания для ассоциативных контейнеров P2077R3 19.32*
std::byteswap() P1272R4 12 14 19.31*
Печать volatile T* P1147R1 12 14 19.31*
basic_string::resize_and_overwrite P1072R10 12
Одновалентные операции для std::optional P0798R8 12
std::move_only_function P0288R9 12
Добавлена условная noexcept спецификация в std::exchange P2401R0 12 14 19.25*
Требует, чтобы span и basic_string_view были TriviallyCopyable P2251R1 Да Да Да Да
Очистка целочисленных типов P2393R1 19.32*
Уточнение статуса “заголовков C” P2340R1
DR: Исправлен views::istream P2432R1 19.31*
DR: Добавлена поддержка для std::generator подобных типов в std::format P2418R2 19.32*
DR: Что такое view P2415R2 12 14 19.31*
DR: исправление обработки локали в форматерах chrono P2372R3
DR: Очистка типов целочисленного класса P2393R1 19.32*
std::expected P0323R12
constexpr for <cmath> and <cstdlib> P0533R9
std::unreachable() P0627R6 15 19.32*
Устаревшие std::aligned_storage и std::aligned_union P1413R3
Свойство типа для обнаружения привязки ссылки к временному объекту P2255R2
constexpr std::unique_ptr P2273R3 19.33*
ranges::to P1206R7
Поддержка каналов для определяемых пользователем адаптеров диапазона P2387R3
ranges::iota, ranges::shift_left и ranges::shift_right P2440R1
views::join_with P2441R2
views::chunk и views::slide P2442R1
views::chunk_by P2443R1 19.33*
C++23 возможность
 
Страница(цы)
 
GCC libstdc++
Clang libc++
MSVC STL
Apple Clang*
IBM Open XL C/C++ для AIX*
Sun/Oracle C++*
Embarcadero C++ Builder*