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;
}