Efter at have opnået den endelige tekniske godkendelse fra ISO 4. september forventes C ++ 20 at blive formelt offentliggjort mod slutningen af dette år med nye funktioner som moduler og coroutines.
C ++ blev designet i 1979 til systemprogrammering og er stadig et vigtigt sprog. C ++ blev endda fundet for at være det hurtigst voksende sprog i Tiobe-indekset fra september 2020, hvor det ligger på fjerdepladsen bag C, Java og Python. Tiobe nævner C ++ 20-specifikationen som en af de faktorer, der giver sproget et boost.
Nye funktioner i C ++ 20 inkluderer:
- Moduler, der gør det muligt for programmører at bruge modulære komponenter.
- Koncept, der bruges til at specificere skabelonkrav og understøtte generisk programmering. Koncept lover at forbedre kodekvaliteten.
- Et synkroniseringsbibliotek til bedre understøttelse af finkornet hardwarekontrol.
- Kompileringstid beregningsforbedringer.
- Coroutines, der generaliserer subrutiner til brug i ikke-forebyggende multitasking. Standardiseret support til coroutines i standardbiblioteket mangler dog stadig. Denne støtte er rettet mod C ++ 23.
- Områder, der leverer komponenter til at håndtere elementområder.
- Funktionstestmakroer, et sæt makroer, der svarer til sprog- og biblioteksfunktioner fra C ++ 11 eller nyere.
- Forudberegnede hashværdier i opslag.
- Udvidelseserklæringer for at muliggøre gentagelse af kompileringstid for en sætning for hvert element i en tuple, matrix, klasse, parameterpakke eller rækkevidde.
- Monadiske operationer til
std :: valgfri kode
. - Implicit oprettelse af objekter til manipulation på lavt niveau.
- Forbedret kontekstafhængig anerkendelse af
importere
ogmodul
for at hjælpe værktøjer, der ikke er kompilatorer, til at bestemme bygningsafhængigheder. - Nye varierede algoritmer.
En kontraktfunktion, der var forventet i C ++ 20, til at specificere præ-betingelser, post-conditions og påstande, er blevet fjernet. Kontrakter er nu markeret som et C ++ 23-element, selvom det muligvis ikke gør det til den udgivelse.