C++ · Essencial · Inglês · Técnico
auto
Palavra-chave que faz o compilador deduzir o tipo da variável a partir do inicializador. Reduz repetição, principalmente com iteradores e tipos de template longos.
Onde usar
Aparece em laços e em retornos de funções genéricas. Em um code review, discute-se se o tipo ficou claro o bastante ou se auto escondeu uma cópia indesejada.
Em código
std::vector<int> v{1, 2, 3};
auto it = v.begin(); // vector<int>::iterator
for (const auto& x : v) {
std::cout << x;
}Exemplos
I used auto for the iterator, the full type is a mouthful.
Usei auto no iterador, o tipo completo é enorme.
Careful, auto here makes a copy; use const auto&.
Cuidado, auto aqui faz uma cópia; use const auto&.
Cuidado
auto descarta const e referência: use const auto& para não copiar sem querer.