Programmering

C ++ 20 får endelig teknisk godkjenning

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 og modul å 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.

$config[zx-auto] not found$config[zx-overlay] not found