Programovanie

C ++ 20 dostáva konečné technické schválenie

Po získaní konečného technického schválenia od ISO 4. septembra sa očakáva, že C ++ 20 bude formálne zverejnený koncom tohto roka a bude obsahovať nové funkcie, ako sú moduly a korutiny.

Jazyk C ++, ktorý bol navrhnutý v roku 1979 pre programovanie systémov, zostáva dôležitým jazykom. C ++ sa dokonca zistilo, že je najrýchlejšie rastúcim jazykom v indexe Tiobe zo septembra 2020, kde je na štvrtom mieste za jazykmi C, Java a Python. Tiobe uvádza špecifikáciu C ++ 20 ako jeden z faktorov podporujúcich jazyk.

Medzi nové funkcie v jazyku C ++ 20 patria:

  • Moduly, ktoré umožňujú programátorom používať modulárne komponenty.
  • Koncepty, ktoré sa používajú na špecifikáciu požiadaviek na šablóny a na podporu všeobecného programovania. Koncepty sľubujú zlepšenie kvality kódu.
  • Synchronizačná knižnica pre lepšiu podporu jemného ovládania hardvéru.
  • Vylepšenia výpočtu v čase kompilácie.
  • Coroutines, ktoré zovšeobecňujú podprogramy na použitie v nepreventívnej práci viacerých úloh. Štandardizovaná podpora pre korutíny v štandardnej knižnici však stále chýba. Táto podpora je zameraná na jazyk C ++ 23.
  • Rozsahy, ktoré poskytujú komponenty na prácu s rozsahmi prvkov.
  • Makrá na testovanie funkcií, sada makier, ktoré zodpovedajú jazykovým a knižničným funkciám od C ++ 11 alebo novšej.
  • Vo vyhľadávaní sú predpočítané hodnoty hash.
  • Príkazy rozšírenia umožňujúce opakovanie príkazu v čase kompilácie pre každý prvok n-tice, poľa, triedy, balíka parametrov alebo rozsahu.
  • Monadické operácie pre std :: optionalcode.
  • Implicitné vytváranie objektov pre manipuláciu na nízkej úrovni.
  • Vylepšené kontextové rozpoznávanie dovoz a modul pomôcť nekompilátorovým nástrojom určiť závislosti zostavenia.
  • Nové zložité algoritmy.

Bola odstránená schopnosť kontraktov, ktorá sa v C ++ 20 očakávala, aby špecifikovala predbežné podmienky, následné podmienky a tvrdenia. Kontrakty sú teraz označené ako položka v C ++ 23, aj keď sa to do tohto vydania nemusí dostať.

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