Junior — Middle
Quali miglioramenti sono stati introdotti nel linguaggio C++ con l'uscita dello standard C++11?
sobes.tech AI
Risposta dell'AI
Lo standard C++11 ha introdotto numerosi miglioramenti e nuove funzionalità, tra cui:
- Inferenza automatica dei tipi (
auto) — semplifica la dichiarazione delle variabili. - Puntatori intelligenti (
std::unique_ptr,std::shared_ptr) — per una gestione sicura della memoria dinamica. - Espressioni lambda — permettono di scrivere funzioni anonime direttamente nel punto di utilizzo.
- Espressioni costanti (
constexpr) — calcoli a compile-time. - Cicli basati su intervalli (
range-based for) — semplificano l’iterazione sugli elementi delle collezioni. - Programmazione multithread — introduzione di thread standard (
std::thread), mutex e altri strumenti di sincronizzazione. - Semantica di movimento e riferimenti rvalue — ottimizzazione nel trasferimento delle risorse.
- Tipi di dimensione fissa (
<cstdint>) — per un controllo più preciso sui tipi.
Esempio di espressione lambda:
#include <iostream>
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
int somma = 0;
std::for_each(v.begin(), v.end(), [&somma](int n) { somma += n; });
std::cout << "Somma: " << somma << std::endl;
return 0;
}