Maison >développement back-end >C++ >« using » peut-il remplacer complètement « typedef » dans C 11 pour les types non-modèles ?
En C 11, 'using' peut désormais définir des alias de type similaires aux 'typedefs' :
typedef int MyInt; // Equivalent to: using MyInt = int;
Alors que « utiliser » a été initialement introduit pour prendre en charge le modèle typedefs :
template< class T > using MyType = AnotherType< T, MyAllocatorType >;
cela soulève la question de savoir s'il existe des différences subtiles entre « typedef » et « using » lors de la gestion de types autres que des modèles.
Comportement d'alias et implications
« typedef » et « using » créent un alias ou un nouveau nom d’un type existant, plutôt que de définir un nouveau type. Cela signifie que les conversions entre l'alias et le type d'origine sont implicites.
Par conséquent, il n'y a aucune différence entre « typedef » et « using » en termes de comportement d'alias. Les deux constructions créent des alias faibles qui font référence au même type sous-jacent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!