Maison > développement back-end > C++ > « using » peut-il remplacer complètement « typedef » dans C 11 pour les types non-modèles ?

« using » peut-il remplacer complètement « typedef » dans C 11 pour les types non-modèles ?

Barbara Streisand
Libérer: 2024-12-23 18:57:13
original
328 Les gens l'ont consulté

Can `using` Completely Replace `typedef` in C  11 for Non-Template Types?

Est-ce que 'using' peut remplacer 'typedef' en C 11 ?

En C 11, 'using' peut désormais définir des alias de type similaires aux 'typedefs' :

typedef int MyInt; // Equivalent to:
using MyInt = int;
Copier après la connexion

Alors que « utiliser » a été initialement introduit pour prendre en charge le modèle typedefs :

template< class T > using MyType = AnotherType< T, MyAllocatorType >;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal