C++23 est une version de la norme ISO/IEC 14882 définissant le langage de programmation C++ qui suit la version C++20. La norme a été finalisée par le WG21 lors de la réunion à Issaquah en . Le dernier working draft gratuit est le N4950, qui date du .
Fonctionnalités Les modifications qui ont été acceptées pour inclusion dans C++23 incluent :
Langage
opérateur d'indexation multidimensionnel (par exemple ) opérateurs d'appel et d'indexation statiques et lambdas statiques
et nouvelles directives de préprocesseur : et
extension de la durée de vie de certaines temporaires dans les boucles range-based nouvel attribut standard déduction des arguments de classe template depuis les constructeurs hérités labels à la fin d'un bloc d'instructions déclaration d'alias dans les init-statements suffixes littéraux et pour et types flottants étendus , , , , facultatif pour les expressions lambdas nullaires attributs sur les expressions lambdas modifications de : variables non-littérales, labels, et gotos dans les fonctions variables et dans les fonctions les fonctions n'ont plus besoin que leur type de retour et leurs types de paramètres soient des types littéraux
réduction des conversions contextuelles vers dans les et suppression des espaces avant la jonction des lignes
séquences d'échappement délimitées caractères d'échappement universels nommés modifications de l'encodage du texte : prise en charge de l'UTF-8 comme encodage de fichier source portable encodage cohérent des caractères littéraux jeux de caractères et encodages
Bibliothèque
Prise en charge par le compilateur Clang a progressivement ajouté une prise en charge partielle de C++23 de 2021 dans la version 13 jusqu'à la version 18 en 2024, disponible via l'option -std=c++23. GCC a ajouté une prise en charge partielle et expérimentale de C++23 en 2021 dans la version 11 via l'option -std=c++2b ou -std=c++23 Il dispose également d'une option pour activer les extensions GNU en plus de la prise en charge expérimentale de C++23, -std=gnu++2b. Références
Catégorie:Langage de programmation Catégorie:Langage orienté objet Catégorie:Norme ISO Catégorie:C++