0Pricing
C++ Academy · Aula

auto, decltype e dedução de tipos

Deixe o compilador deduzir os tipos com auto e decltype para escrever código mais claro

auto, decltype e dedução de tipos é uma aula grátis de C++ Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C++ Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C++ Academy inclui 4 aulas no total.

Dedução de tipos no C++ moderno

Desde o C++11, o compilador pode deduzir tipos em muitos lugares. Isso torna o código mais curto e menos propenso a erros — quando usado com bom senso.

A palavra-chave auto

auto deduz o tipo a partir do inicializador em tempo de compilação. A variável ainda tem um tipo fixo e conhecido estaticamente.

auto i = 42;          // int
auto d = 3.14;        // double
auto s = "hello";     // const char*
auto v = std::vector<int>{1,2,3};   // std::vector<int>

auto e const

Por padrão, auto descarta const e referências de nível superior. Adicione-os explicitamente quando quiser preservá-los.

const int n = 10;
auto a = n;            // int (const dropped)
const auto& b = n;     // const int&

auto com iteradores

Os nomes dos tipos de iterador são longos. auto é especialmente útil aqui.

std::map<std::string, int> ages = {{"Ada", 30}};
auto it = ages.find("Ada");
// vs std::map<std::string,int>::iterator it = ...

for baseado em intervalo e auto

Use auto& para percorrer os elementos sem copiá-los.

for (const auto& [name, age] : ages) {
    std::cout << name << ": " << age << "\n";
}

Tipos de retorno à direita

As funções podem usar auto como marcador do retorno, com uma seta ao final especificando o tipo — algo útil para modelos.

auto add(int a, int b) -> int {
    return a + b;
}

Dedução do tipo de retorno no C++14

O C++14 permite tipos de retorno simples com auto — o compilador deduz o tipo a partir da instrução de retorno.

auto multiply(double x, double y) {
    return x * y;       // deduced as double
}

decltype: obtendo o tipo de uma expressão

decltype(expr) fornece o tipo de expr em tempo de compilação. Diferentemente de auto, ele preserva referências e const.

int x = 0;
int& r = x;
decltype(r) ref = x;  // int&
decltype(x) val = 0;  // int

decltype(auto)

Combina a dedução com as regras de decltype — preserva o tipo exato da expressão, incluindo a categoria de valor.

auto         a = some_func();   // copy
decltype(auto) b = some_func();  // exact type, including references

Quando evitar auto

Evite auto quando o tipo deduzido não for óbvio — literais numéricos grandes, cálculos mistos ou tamanhos específicos da plataforma. Seja explícito para facilitar a leitura.

Estilo de uso quase sempre de auto

Alguns guias de estilo recomendam auto para todas as variáveis, a fim de evitar conversões silenciosas. Outros preferem tipos explícitos. Escolha uma convenção e aplique-a de forma consistente.

Verificação rápida

Qual é a diferença entre auto e decltype(auto) ao retornar uma referência?

Recapitulação

auto deduz os tipos a partir dos inicializadores; decltype informa o tipo de uma expressão; decltype(auto) faz a dedução preservando as referências. Use-os para reduzir o excesso de código — mas mantenha a legibilidade.

Perguntas Frequentes

A aula “auto, decltype e dedução de tipos” é grátis?

Sim — o texto completo de “auto, decltype e dedução de tipos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C++ Academy, atualize para CoddyKit PRO. O curso de C++ Academy inclui 4 aulas no total.

O que vou aprender em “auto, decltype e dedução de tipos”?

Deixe o compilador deduzir os tipos com auto e decltype para escrever código mais claro Você pratica C++ Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C++ Academy?

Nenhuma experiência prévia é necessária. C++ Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “auto, decltype e dedução de tipos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C++ Academy?

Sim. Cada aula de C++ Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. auto, decltype e dedução de tipos
  2. for baseado em intervalos, nullptr e enum class
  3. Expressões lambda: captura, mutable e genéricas
  4. Associações estruturadas e if-init no C++17
← Voltar para C++ Academy