c++ - uso - typedef en programación
C++ ''typedef'' vs. ''utilizando...=...'' (1)
Posible duplicado:
¿Cuáles son las diferencias entre typedef y usar en C ++ 11?
El siguiente código compila y ejecuta. Mi pregunta es ¿cuál es la diferencia entre los métodos "typedef" y "using" para cambiar el nombre de la especialización de plantillas?
template<typename T>
struct myTempl{
T val;
};
int main (int, char const *[])
{
using templ_i = myTempl<int>;
templ_i i;
i.val=4;
typedef myTempl<float> templ_f;
templ_f f;
f.val=5.3;
return 0;
}
Editar:
Si no hay diferencia, ¿cuál preferirías? / ¿Por qué se introdujo la versión using ... = ...?
Ellos son lo mismo.
Para citar el estándar C ++ 11 (o el borrador para ser específico):
Un typedef-name también puede ser introducido por una declaración de alias . El identificador que sigue a la palabra clave using se convierte en un typedef-name y el atributo opcional -especificador-seq que sigue al identificador pertenece a ese typedef-name . Tiene la misma semántica que si fuera introducida por el especificador typedef . En particular, no define un nuevo tipo y no aparecerá en el ID de tipo .
Creo que "la misma semántica que el especificador typedef" lo dice todo.