WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте

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]

Возможные изменения библиотек

  • расширенные future[34]
  • latches и barriers[35]
  • task blocks[36]
  • форматрование текста[37]

См. также

Примечания

  1. The next standard after C++17 will be C++20., by Herb Sutter
  2. Current Status : Standard C++.
  3. Working Draft, Standard for Programming Language C++.
  4. Шаблон:Cite-web
  5. P0606R0: Concepts Are Ready.
  6. Designated Initialization Wording.
  7. Thomas Köppe. Allow lambda capture [=, this].
  8. Familiar template syntax for generic lambdas.
  9. Шаблон:Cite-web
  10. N4714 Editors' Report -- Programming Languages -- C++. C++ standards drafts. GitHub. Проверено 27 декабря 2018.
  11. 1 2 3 4 Trip Report: C++ Standards Meeting in Albuquerque, November 2017 (англ.), There's Waldo! (20 ноября 2017).
  12. Wording for lambdas in unevaluated contexts.
  13. Default constructible and assignable stateless lambdas.
  14. Pack expansion in lambda init-capture. www.open-std.org.
  15. String literals as non-type template parameters.
  16. Revising atomic_shared_ptr for C++20. JTC1/SC22/WG21 - The C++ Standards Committee - ISOCPP. ISO. Проверено 27 декабря 2018.
  17. Шаблон:Cite-web
  18. Support for contract based programming in C++. www.open-std.org.
  19. Integrating feature-test macros into the C++ WD. www.open-std.org.
  20. Bit-casting object representations. www.open-std.org.
  21. explicit(bool). www.open-std.org.
  22. C++20 in the fall meeting in November 2018
  23. P0896R3.
  24. P1141R1 - Yet another approach for constrained declarations.
  25. P1330R0 - Changing the active member of a union inside constexpr.
  26. P1002R0 - Try-catch blocks in constexpr functions.
  27. P1327R0 - Allowing dynamic_cast, polymorphic typeid in Constant Expressions.
  28. P1006R1 - Constexpr in std::pointer_traits.
  29. P1032R1 - Misc constexpr bits.
  30. P1073R2 - Immediate functions.
  31. P1236R0: Alternative Wording for P0907R4 Signed Integers are Two's Complement.
  32. P1289R0 - Access control in contract conditions.
  33. P0668R4: Revising the C++ memory model.
  34. Functional in C++17 and C++20.
  35. P0342R0: Timing barriers.
  36. Task Blocks.
  37. Text Formatting.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии