Programiranje

C ++ 20 prejme končno tehnično soglasje

Po končni tehnični odobritvi s strani ISO 4. septembra naj bi bil C ++ 20 uradno objavljen proti koncu letošnjega leta z uvedbo novih funkcij, kot so moduli in podprogrami.

C ++, zasnovan leta 1979 za sistemsko programiranje, ostaja ključni jezik. C ++ je bil celo najhitreje rastoč jezik v indeksu Tiobe septembra 2020, kjer je za C, Javo in Pythonom na četrtem mestu. Tiobe navaja specifikacijo C ++ 20 kot enega od dejavnikov, ki jezik spodbujajo.

Nove zmožnosti v C ++ 20 vključujejo:

  • Moduli, ki programerjem omogočajo uporabo modularnih komponent.
  • Koncepti, ki se uporabljajo za določanje zahtev za predloge in podporo splošnemu programiranju. Koncepti obljubljajo izboljšanje kakovosti kode.
  • Knjižnica za sinhronizacijo za boljšo podporo natančnega nadzora strojne opreme.
  • Izboljšave računalniškega prevajanja.
  • Programi, ki posplošujejo podprograme za uporabo v nepreprečevalnem večopravilnem delu. Kljub temu pa še vedno ni standardizirane podpore za običajne programe v standardni knjižnici. Ta podpora je namenjena za C ++ 23.
  • Območja, ki zagotavljajo komponente za obravnavo obsegov elementov.
  • Makro za preizkušanje lastnosti, nabor makrov, ki ustrezajo jezikovnim in knjižničnim funkcijam iz C ++ 11 ali novejše različice.
  • Vnaprej izračunane hash vrednosti pri iskanju.
  • Stavki razširitve, ki omogočajo ponovitev stavka v času prevajanja za vsak element sklopa, matrike, razreda, paketa parametrov ali obsega.
  • Monadične operacije za std :: neobvezna koda.
  • Implicitno ustvarjanje predmetov za manipulacijo na nizki ravni.
  • Izboljšano kontekstno občutljivo prepoznavanje uvoz in modul za pomoč orodjem, ki ne prevajajo, za določanje odvisnosti gradnje.
  • Novi rangirani algoritmi.

Pogodbena sposobnost, ki je bila pričakovana v C ++ 20 za določanje predpogojev, postpogojev in trditev, je bila odstranjena. Pogodbe so zdaj označene kot postavka C ++ 23, čeprav morda tudi ne bo prišla v to izdajo.

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