auto in C++In C++, la parola chiave auto è una funzionalità potente introdotta con C++11, usata per dichiarare variabili con un tipo di dato inferito.
Il compilatore deduce il tipo della variabile dal suo inizializzatore, il che può rendere il codice più leggibile e più facile da mantenere.
Considera il seguente esempio, in cui auto viene usata per dichiarare delle variabili:
auto dragon_population{3}; // dragon_population is deduced as an integer
auto westeros{7.7777}; // westeros is deduced as a double
auto wedding_location{"The Twins"}; // wedding_location is deduced as a const char*, not std::string
In ogni caso, il tipo della variabile viene inferito dal valore con cui è inizializzata.
La parola chiave auto aiuta a scrivere codice più conciso e leggibile, riducendo la verbosità dei tipi espliciti.
const std::vector<std::string> pigeon_pie{"flour", "butter", "pigeon", "salt"};
auto purple_wedding_pie{pigeon_pie};
purple_wedding_pie.emplace_back("the strangler");
In questo esempio, auto deduce il tipo di purple_wedding_pie come std::vector<std::string>, evitando di dover specificare di nuovo esplicitamente il tipo.
La parola chiave auto è compatibile con diverse costruzioni del C++ e questo la rende uno strumento versatile nella programmazione C++ moderna.
auto& element{array[0]}; // reference to an element
const auto object{otherObject}; // const type version of otherObject's type
auto* ptr{&x}; // pointer to x with the same type as x, but as a pointer.
Nei prossimi concetti vedremo spesso la parola chiave auto con espressioni lambda, cicli for basati su intervalli e iteratori.
auto è particolarmente utile negli scenari di programmazione generica, dove i tipi possono essere complessi o legati ai template.auto può ridurre il disordine e migliorare la manutenibilità del codice.