Po konečném technickém schválení od ISO 4. září se očekává, že C ++ 20 bude oficiálně publikován na konci tohoto roku a představí nové funkce, jako jsou moduly a coutiny.
C ++, navržené v roce 1979 pro programování systémů, zůstává důležitým jazykem. C ++ se dokonce ukázalo jako nejrychleji rostoucí jazyk v indexu Tiobe ze září 2020, kde se řadí na čtvrté místo za C, Java a Python. Tiobe uvádí specifikaci C ++ 20 jako jeden z faktorů, které dávají jazyku podporu.
Mezi nové funkce v C ++ 20 patří:
- Moduly, umožňující programátorům používat modulární komponenty.
- Koncepty, které se používají ke specifikaci požadavků na šablony a podpoře obecného programování. Koncepty slibují zlepšení kvality kódu.
- Synchronizační knihovna pro lepší podporu jemně vyladěného hardwarového ovládání.
- Vylepšení výpočtu v době kompilace.
- Coroutines, které zobecňují podprogramy pro použití v nepředpjatém multitaskingu. Standardizovaná podpora pro korutiny ve standardní knihovně však stále chybí. Tato podpora je zaměřena na C ++ 23.
- Rozsahy, které poskytují komponenty pro řešení rozsahů prvků.
- Makra pro testování funkcí, sada maker, která odpovídají funkcím jazyka a knihovny z C ++ 11 nebo novějšího.
- Předpočítané hodnoty hash ve vyhledávání.
- Příkazy rozšíření umožňující opakování příkazu v době kompilace pro každý prvek n-tice, pole, třídy, sady parametrů nebo rozsahu.
- Monadické operace pro
std :: optionalcode
. - Implicitní vytváření objektů pro manipulaci na nízké úrovni.
- Vylepšené kontextové rozpoznávání
import
amodul
pomáhat nástrojům bez kompilátoru k určení závislostí sestavení. - Nové rangified algoritmy.
Byla odstraněna schopnost kontraktů, která se v C ++ 20 očekávala, aby určila předběžné podmínky, následné podmínky a tvrzení. Kontrakty jsou nyní označeny jako položka C ++ 23, i když se do této verze nemusí dostat.