Maison > développement back-end > C++ > Quel est le but du mot-clé « typename » dans les modèles C ?

Quel est le but du mot-clé « typename » dans les modèles C ?

DDD
Libérer: 2024-12-11 14:31:11
original
812 Les gens l'ont consulté

What is the Purpose of the `typename` Keyword in C   Templates?

Quel est le but du typename en C ?

Lorsque vous travaillez avec des modèles, il est possible de rencontrer des messages d'erreur déroutants du compilateur C, gcc. En particulier, des déclarations correctes peuvent provoquer des erreurs de compilation bizarres qui disparaissent lorsque le mot-clé typename est appliqué. Pour clarifier ce problème, il est crucial de comprendre le rôle du typename.

Selon "The C Standard Library" de Nicolai M. Josuttis, typename précise que l'identifiant suivant est un type. Prenons l'exemple suivant :

template <class T>
Class MyClass
{
  typename T::SubType * ptr;
  ...
};
Copier après la connexion

Dans cet exemple, typename précise que SubType est un type de classe T. Par conséquent, ptr est un pointeur vers le type T::SubType. Sans nom de type, SubType serait interprété comme un membre statique, faisant de T::SubType * ptr une multiplication de la valeur SubType de type T avec ptr.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal