auto)La palabra clave auto en C++11 permite que el compilador deduzca el tipo de una variable a partir de su inicializador. Esta característica simplifica el código al reducir la redundancia y es especialmente útil al trabajar con tipos complejos.
Ejemplo básico:
auto x = 5; // x es de tipo int
auto y = 3.14; // y es de tipo double
auto z = "Hola Mundo"; // z es de tipo const char*
Con tipos complejos:
std::vector<int> numeros = {1, 2, 3, 4, 5};
auto it = numeros.begin(); // it es de tipo std::vector<int>::iterator
Beneficios:
Notas importantes:
El tipo debe ser deducible a partir del inicializador; no se puede usar auto sin inicialización.
auto a; // Error: 'a' declarado con 'auto' necesita un inicializador
Ten cuidado con el tipo deducido; a veces, puede no ser lo que esperas.
auto n = {1, 2, 3}; // n es de tipo std::initializer_list<int>
C++11 introdujo una nueva sintaxis para inicializar variables usando llaves {}. Esto se conoce como inicialización uniforme y tiene como objetivo proporcionar una forma consistente de inicializar objetos.
int x{5}; // Inicialización directa
int y = {6}; // Inicialización por copia
std::vector<int> vec{1, 2, 3}; // Inicialización con una lista