C++20 — неофициальное название стандарта ISO/IEC языка программирования C++, который должен ожидается после C++17[1]
Комитет по стандартам C++ начал планировать C++20 в июле 2017 года[2] Текущий черновик — N4778[3].
Новые возможности
- В черновик стандарта попали следующие добавления в июле 2017[4]
- concepts[5]
- назначенные инициализаторы (designated initializers_[6] (основанные на стандарте C99)
[=, this]
как лямбда-захват (lambda capture)[7]
- шаблонные параметры списка в ламбда-выражениях[8]
- В черновик стандарта попали следующие добавления в ноябре 2017[9][10]
- тройное сравнение (three-way comparison)
operator <=>
- инициализация дополнительной переменной в пределах диапазона в цикле
for
- лямбды в невычисленных контекстах[11][12]
- конструируемые и назначаемые лямбды без сохранения по умолчанию[11][13]
- init-capture[11][14]
- строковые литералы как параметры шаблона[11][15]
- атомные умные указатели (например
std::atomic<shared_ptr<T>>
and std::atomic<weak_ptr<T>>
)[16]
- В черновик стандарта попали следующие добавления в июне 2018[17]
- контракты[18]
- тестовые макросы[19]
- Преобразование в битовые представления объектов[20]
- условные
explicit
, позволяя явному модификатору зависеть от логического выражения[21]
- Добавления ноября 2018[22]
- диапазоны (The One Ranges Proposal)[23]
- concept terse syntax[24]
- constexpr union,[25] try / catch[26] dynamic_cast and typeid,[27] std::pointer_traits[28]
- various constexpr library bits[29]
- непосредственные функции с использованием нового зарезервированного слова
consteval
[30]
- signed integer сейчас означают дополнительный код[31]
- уточнения объекта контракта (контроль доступа в контрактах)[32]
- пересмотренная модель памяти[33]
Возможные изменения библиотек
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .