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
DDDoriginal
2024-12-11 14:31:11776parcourir

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;
  ...
};

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!

Déclaration:
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