Стандарт C++20 офіційно затвердили

1 хв. читання

Комітет ISO днями затвердив проєкт стандарту C++20. Основний стандарт мови виходить що три роки, тож ця версія є нащадком C++17. Протягом кількох місяців документ підготують остаточно, виправлять помилки й офіційно опублікують до кінця 2020 року.

Ось деякі нові нові функції стандарту C++20:

  • Розширення для роботи з модулями. Сирцевий код у такому випадку компілюється один раз, а тоді повторно використовується як бінарний файл. Це зручніша альтернатива заголовковим файлам, модулі краще ізолюють код та пришвидшують компіляцію.
  • Концепції. Це нові розширення шаблонів, які визначають перелік вимог до набору аргументів у шаблоні. Наприклад, якщо шаблон приймає аргумент типу (type argument), ми можемо уточнити, що цей аргумент (T) може бути ітератором (Iterator<T>) або, наприклад, числом (Number<T>). Це допомагає уникнути логічних помилок і загалом робить компіляцію зручнішою, зрештою, можна створювати власні концепції та відповідні бібліотеки концепцій.
  • Можливість лямбда-захоплення виразів [=, this].
  • Підтримка корутин, функцій для тимчасової зупинки виконання, потрібних в асинхронному програмуванні.
  • Підтримка оператора <=>, який виконує тристороннє порівняння і повертає «менше», «більше» або «дорівнює».
  • Можливість застосувати рядкові літерали у параметрах шаблонів.
  • Підтримка нових атрибутів: likely, unlikely і no_unique_address.

З усім переліком функцій та оновлень стандартної бібліотеки можна ознайомитись тут.

Також в C++20 мали додати функцію контрактів, однак вона не була завершена, тож, вочевидь, з'явиться у наступній версії, C++23, яку вже почали готувати. За словами розробників, обидві версії стандарту вийдуть вчасно.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.6K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація