auto en C++En C++, la palabra clave auto es una funcionalidad poderosa introducida en C++11, que se usa para declarar variables con un tipo de dato inferido.
El compilador deduce el tipo de la variable a partir de su inicializador, lo que puede hacer que el código sea más legible y más fácil de mantener.
Considera el siguiente ejemplo, donde se usa auto para declarar variables:
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
En cada caso, el tipo de la variable se infiere a partir del valor con el que se inicializa.
La palabra clave auto ayuda a escribir código más conciso y legible al reducir la verbosidad de los tipos explícitos.
const std::vector<std::string> pigeon_pie{"flour", "butter", "pigeon", "salt"};
auto purple_wedding_pie{pigeon_pie};
purple_wedding_pie.emplace_back("the strangler");
En este bucle, auto deduce el tipo de purple_wedding_pie como std::vector<std::string>, lo que evita tener que especificar el tipo de nuevo de forma explícita.
La palabra clave auto es compatible con diversas construcciones de C++, lo que la convierte en una herramienta versátil en la programación moderna en C++.
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.
En conceptos posteriores veremos a menudo la palabra clave auto con expresiones lambda, bucles for basados en rangos e iteradores.
auto es especialmente útil en escenarios de programación genérica donde los tipos pueden ser complejos o estar relacionados con plantillas.auto puede reducir el desorden y mejorar el mantenimiento del código.