Sobes.tech
Junior — Middle

Quelles améliorations ont été apportées au langage C++ avec l'apparition de la norme C++11?

sobes.tech IA

Réponse de l'IA

La norme C++11 a introduit de nombreuses améliorations et nouvelles fonctionnalités, notamment :

  • Déduction automatique de types (auto) — facilite la déclaration de variables.
  • Pointeurs intelligents (std::unique_ptr, std::shared_ptr) — pour une gestion sûre de la mémoire dynamique.
  • Expressions lambda — permettent d’écrire des fonctions anonymes directement à l’endroit de leur utilisation.
  • Expressions constantes (constexpr) — calculs à la compilation.
  • Boucles basées sur des plages (range-based for) — simplifient l’itération sur les éléments des collections.
  • Programmation multithread — introduction de threads standards (std::thread), mutex et autres moyens de synchronisation.
  • Semantique de déplacement et références rvalue — optimisation du transfert de ressources.
  • Types à taille fixe (<cstdint>) — pour un contrôle plus précis des types.

Exemple d’expression lambda :

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    int sum = 0;
    std::for_each(v.begin(), v.end(), [&sum](int n) { sum += n; });
    std::cout << "Somme : " << sum << std::endl;
    return 0;
}