Pourquoi faire de ce type de alias en C++ utilisation "à l'aide" au lieu de "typedef" dans leur syntaxe?

Clairement, type d'alias et basé sur un modèle de type alias sont sémantiquement équivalents typedefs et une extension des typedefs de modèle de prise en charge. Comment se fait-nouvelle syntaxe avec le using mot-clé a été créé pour ces au lieu d'utiliser des typedefs pour la première et de certains de la syntaxe de l'extension, le mot typedef.

REMARQUE: Ce n'est pas un clone de la "différence entre l'utilisation et la définition de type" question. Je sais que using donne l'avantage de définir une famille de typedefs. Ce que je demande, c'est pourquoi la norme de gens décident d'avoir cette extension de l'utilisation de la using mot-clé à la place de la typedef mot-clé. Il semble que ça ajoute de la confusion dans la langue.

  • il n'est pas. Je sais que using donne l'avantage de définir une famille de typedefs. Ce que je demande, c'est pourquoi la norme de gens décident d'avoir cette extension de l'utilisation de la using mot-clé à la place de la typedef mot-clé. Il semble que ça ajoute de la confusion dans la langue.
  • Éventuellement, cela a à voir avec les problèmes mentionnés dans N1406 et comment N1499 résout eux. La solution est traduit dans la syntaxe: modèle alias de ne pas définir des types, comme une définition de type de modèle suggère, et qui s'oppose à la proposition initiale de définition de type de modèles qui ont permis de spécialisation (dans une version de celui-ci).
  • TL;DR parce que la définition de type est un horrible illisible hack et il y avait la possibilité de le remplacer avec un nettoyant plus doux de la syntaxe.
  • dpj typedef ne pas ajouter un type soit, traditionnellement, ce qu'il est appelé est un type faible, mais cela signifie simplement il n'y a pas de type dans le compilateur est de type table.
InformationsquelleAutor tohava | 2014-07-23