C++

Définition

C++ est un langage de programmation compilé et multi-paradigme, créé par Bjarne Stroustrup chez Bell Labs en 1979 comme une extension de C.

  • Normalisation : ISO/IEC 14882 (C++23 est le dernier standard, publié en 2023)
  • Fonctionnalités clés : Templates, RAII, sémantique de déplacement, constexpr, concepts
  • Abstraction sans coût : Les fonctionnalités de haut niveau se compilent en code machine efficace
  • Bibliothèque standard : STL (Standard Template Library) — conteneurs, algorithmes, itérateurs

Normes du langage

|| Standard | Année | Fonctionnalités clés | ||———-|——|————-| || C++98 | 1998 | Premier standard ISO, STL | || C++03 | 2003 | Corrections de bugs | || C++11 | 2011 | Références rvalue, auto, lambda, nullptr, améliorations RAII | || C++14 | 2014 | Lambdas génériques, templates de variables | || C++17 | 2017 | Liaisons structurées, if-init, std::optional, std::variant | || C++20 | 2020 | Concepts, coroutines, ranges, modules, std::filesystem | || C++23 | 2023 | std::print, std::format, std::expected, std::mdspan |

Implémentations de compilateurs

|| Compilateur | Licence | Notes | ||———-|———|——-| || GCC (g++) | GPLv3 + Runtime GCC | Par défaut sur Linux | || Clang/LLVM (clang++) | Apache 2.0 + MIT | Par défaut sur Apple, diagnostics les plus rapides | || MSVC (cl) | Commercial | Par défaut sur Windows | || Intel ICC/ifx | Commercial | Optimisation Intel |

Cas d’utilisation

  • Moteurs de jeux (Unreal Engine)
  • Systèmes de trading à haute fréquence
  • Navigateurs (Chrome, Firefox)
  • Systèmes d’exploitation et pilotes de périphériques
  • Systèmes de base de données (MySQL, PostgreSQL)
  • Systèmes embarqués avec des exigences temps réel

Comparaison avec les langages apparentés