cpp-deduccion-tipo-con-auto

Deducción de tipo por contexto con auto en C++

La deducción de tipo por contexto es una característica que permite al compilador inferir el tipo de una variable a partir del contexto en el que se utiliza.

El objetivo de la deducción de tipo es hacer el código más conciso, sencillo de leer y más mantenible evitando la repetición de código innecesario.

En C++, la deducción de tipo por contexto se realiza principalmente mediante el uso de la palabra clave auto y la funcionalidad decltype.

Si quieres aprender más sobre deducción de tipo por contexto en C++
consulta el Curso de Introducción a la Programación leer más

Deducción con auto

La palabra clave auto en fue introducida en C++11. Permite al compilador deducir el tipo de una variable basándose en el valor con el que se inicializa.

La sintaxis para usar auto es sencilla:

auto nombreVariable = expresionInicializacion;

Por ejemplo:

auto numero = 42; // `numero` es inferido como int
auto mensaje = "Hola Mundo"; // `mensaje` es inferido como const char*

En estos ejemplos, el compilador infiere automáticamente que numero es de tipo int y mensaje es de tipo const char* basándose en los valores iniciales asignados.

La deducción de tipo también funciona para tipos complejos y para tipos devueltos por funciones:

auto lista = std::vector<std::string>(); // `lista` es deducido como std::vector<std::string>
auto miObjeto = MetodoQueDevuelveAlgo();  // `miObjeto` es deducido según el tipo de retorno de MetodoQueDevuelveAlgo

Uso de decltype para deducción de tipo

decltype es otra características de C++ que nos permite deducir el tipo de una expresión sin evaluarla. Esto es útil para obtener el tipo de variables.

int x = 5;
decltype(x) y = 10; // `y` es inferido como int

Aquí, decltype(x) deduce el tipo de x, que es int, y lo usa para declarar y.

Ejemplos prácticos