C ++ 20 получава окончателно техническо одобрение

След като постигна окончателно техническо одобрение от ISO на 4 септември, се очаква C ++ 20 да бъде официално публикуван към края на тази година, въвеждайки нови функции като модули и съпрограми.

Проектиран през 1979 г. за системно програмиране, C ++ остава жизненоважен език. Дори бе установено, че C ++ е най-бързо растящият език в индекса Tiobe от септември 2020 г., където се нарежда на четвърто място след C, Java и Python. Tiobe цитира спецификацията C ++ 20 като един от факторите, които дават тласък на езика.

Новите възможности в C ++ 20 включват:

  • Модули, позволяващи на програмистите да използват модулни компоненти.
  • Концепции, използвани за задаване на изисквания за шаблони и поддържане на общо програмиране. Концепциите обещават да подобрят качеството на кода.
  • Библиотека за синхронизация, за по-добра поддръжка на фино контролиран хардуер.
  • Подобрения на изчисленията по време на компилация.
  • Програми, които обобщават подпрограмите за използване в непретенциозна многозадачност. Все още липсва стандартизирана поддръжка за съпрограми в стандартната библиотека. Тази поддръжка е насочена към C ++ 23.
  • Обхвати, които предоставят компоненти за справяне с обхвати от елементи.
  • Макроси за тестване на функции, набор от макроси, които съответстват на езиковите и библиотечните функции от C ++ 11 или по-нова версия.
  • Предварително изчислени хеш стойности при търсене.
  • Оператори за разширяване, за да се даде възможност за повторение на компилацията по време на компилация за всеки елемент от кортеж, масив, клас, пакет от параметри или диапазон.
  • Монадични операции за std::optionalcode.
  • Неявно създаване на обекти за манипулация на ниско ниво.
  • Подобрено контекстно-чувствително разпознаване importи moduleпомощ на некомпилаторните инструменти за определяне на зависимости за изграждане.
  • Нови рангифицирани алгоритми.

Възможността за сключване на договори, която се очакваше в C ++ 20, за определяне на предварителни условия, последващи условия и твърдения, е премахната. Договорите вече са маркирани като елемент C ++ 23, въпреки че може и да не влезе в това издание.