ExpertiDict

C++ · Essencial · Inglês · Técnico

auto

ˈɔːtoʊpalavra-chave

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.

Veja também

Todos os termos de C++