auto em C++Em C++, a palavra-chave auto é um recurso poderoso introduzido no C++11, usada para declarar variáveis com um tipo de dado inferido.
O compilador deduz o tipo da variável a partir do seu inicializador, o que pode deixar o código mais legível e mais fácil de manter.
Considere o exemplo a seguir, em que auto é usado para declarar variáveis:
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
Em cada caso, o tipo da variável é inferido a partir do valor com que ela é inicializada.
A palavra-chave auto ajuda a escrever um código mais conciso e legível, reduzindo a verbosidade dos 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");
Neste laço, auto deduz o tipo de purple_wedding_pie como std::vector<std::string>, evitando a necessidade de especificar o tipo de novo explicitamente.
A palavra-chave auto é compatível com várias construções do C++, o que a torna uma ferramenta versátil na programação moderna em 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.
Em conceitos posteriores, veremos com frequência a palavra-chave auto com expressões lambda, laços for baseados em intervalo e iteradores.
auto é especialmente útil em cenários de programação genérica, nos quais os tipos podem ser complexos ou envolver templates.auto reduz a poluição visual e melhora a manutenibilidade do código.auto simplifica o uso de iteradores em algoritmos, o que melhora a legibilidade do código.