usuario uso tipos programación por funciones example estructuras ejemplos ejemplo definidos datos con c++ c++11 typedef using-directives

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.