Je sais qu'en C++11, nous pouvons maintenant utiliser using
pour écrire des alias de type, comme typedef
s:
typedef int MyInt;
Est, d'après ce que je comprends, ce qui équivaut à:
using MyInt = int;
Et que la nouvelle syntaxe a émergé à partir de l'effort de disposer d'un moyen d'exprimer "template typedef
":
template< class T > using MyType = AnotherType< T, MyAllocatorType >;
Mais, avec les deux premiers non-exemples de modèle, existe-il d'autres différences subtiles dans la norme? Par exemple, typedef
s ne l'aliasing dans les "faibles". Ce n'est pas de créer un nouveau type, mais seulement un nouveau nom (conversions implicites entre ces noms).
Est-ce la même chose avec using
ou faut-il générer un nouveau type? Existe-il des différences?