Etter å ha oppnådd endelig teknisk godkjenning fra ISO 4. september, forventes C ++ 20 å bli formelt publisert mot slutten av året, og introdusere nye funksjoner som moduler og coroutines.
Designet i 1979 for systemprogrammering, er C ++ fortsatt et viktig språk. C ++ ble til og med funnet å være det raskest voksende språket i Tiobe-indeksen fra september 2020, der den ligger på fjerdeplassen bak C, Java og Python. Tiobe siterer C ++ 20-spesifikasjonen som en av faktorene som gir språket et løft.
Nye funksjoner i C ++ 20 inkluderer:
- Moduler, slik at programmerere kan bruke modulære komponenter.
- Konsepter, brukes til å spesifisere malkrav og støtte generisk programmering. Konsepter lover å forbedre kodekvaliteten.
- Et synkroniseringsbibliotek for bedre støtte for finkornet maskinvarekontroll.
- Kompilering forbedring av beregningstid.
- Coroutines, som generaliserer underrutiner for bruk i ikke-forebyggende multitasking. Standardisert støtte for coroutines i standardbiblioteket mangler likevel. Denne støtten er rettet mot C ++ 23.
- Områder, som gir komponenter for å håndtere utvalg av elementer.
- Funksjonstestmakroer, et sett med makroer som tilsvarer språk- og biblioteksfunksjoner fra C ++ 11 eller nyere.
- Forberegnede hashverdier i oppslag.
- Utvidelsessetninger for å muliggjøre repetisjon av en setning for kompileringstid for hvert element i en tuple, matrise, klasse, parameterpakke eller rekkevidde.
- Monadiske operasjoner for
std :: valgfri kode
. - Implisitt oppretting av objekter for manipulering på lavt nivå.
- Forbedret kontekstsensitiv anerkjennelse av
import
ogmodul
å hjelpe verktøy som ikke er kompilator for å bestemme avhengighet. - Nye varierte algoritmer.
En kontraktsevne som var forventet i C ++ 20, for å spesifisere forhåndsvilkår, etterbetingelser og påstander, er fjernet. Kontrakter er nå merket som et C ++ 23-element, selv om det kanskje ikke gjør det til den utgivelsen heller.