De internationale norm ISO/IEC 14882 ‘Programmeertalen — C++’ is geüpdatet en gepubliceerd. Deze norm definieert zowel de eisen aan de taal zelf als aan de implementatie van C++. C++ is een programmeertaal voor algemene doeleinden waarvan de ontwikkeling al in de jaren 80 van de vorige eeuw is gestart.
C++ is een hogere programmeertaal. Het voordeel van hogere programmeertalen is dat programmeurs niet meer afhankelijk zijn van de onderliggende processor. Er worden afspraken gemaakt over de manier waarop een programmeertaal tekst opschrijft en wat dit zou betekenen. Voor C++ is dit vastgelegd in een ISO-norm. Ook talen als FORTRAN, COBOL en C zijn in ISO-normen gedefinieerd. De ISO-norm voor C++ is een update van de eerdere versie met veel veranderingen.
Toevoegingen
De herziening van ISO/IEC 14882 uit 2020 voegt een aantal nieuwe mogelijkheden toe aan de manier waarop de taal gebruikt wordt en deze zullen sterk veranderen en simplificeren. Een aantal voorbeelden zijn:
- Makkelijkere genericiteit door met behulp van ‘concepts’ vereisten te stellen aan templates.
- Betere ondersteuning van modulair programmeren (waardoor programma’s een betere structuur kunnen krijgen en ook snellere compilatietijden).
- Een nieuw keyword “<=>” maakt het mogelijk om in een keer een drievoudig vergelijkingsresultaat te krijgen (in plaats van a>b of a==b of a>=b, levert a<=>b een volledig uitsluitsel op over of a kleiner, gelijk of groter dan b is, in een enkele operatie).
- Een andere belangrijke nieuwe feature vormen ‘coroutines’. Coroutines zijn een veralgemenisering van functieaanroepen (stackless co-operative multitasking).
Nieuwe faciliteiten
Naast toevoegingen aan de taal zijn ook in de C++ standaard bibliotheek veel nieuwe faciliteiten opgenomen.Een aantal voorbeelden zijn:
- ‘Ranges’ een veralgemenisering van een ‘sequence’ waardoor operaties op een container veel efficiënter opgeschreven en uitgevoerd kan worden.
- Calender en tijdzone operaties en een bibliotheek van standaard concepts waarmee generieke functies de types waarop ze opereren kunnen specificeren.
- Ook zijn er kleine wijzigingen in de bibliotheek die betrekking hebben op nieuwe faciliteiten in de taal (zoals het toevoegen van operator “<=>” aan het standaardtype ‘string’.