typename
In Vorlagendefinitionen wird dem Compiler ein Hinweis angezeigt, typename
dass ein unbekannter Bezeichner ein Typ ist. In Vorlagenparameterlisten wird ein Typparameter angegeben.
Syntax
typename
identifier
;
Hinweise
Die typename
Schlüsselwort (keyword) muss verwendet werden, wenn ein Name in einer Vorlagendefinition ein qualifizierter Name ist, der von einem Vorlagenargument abhängig ist. Es ist optional, wenn der qualifizierte Name nicht abhängig ist. Weitere Informationen finden Sie unter Vorlagen und Namensauflösung.
typename
kann von jedem Beliebigen Typ an beliebiger Stelle in einer Vorlagendeklaration oder -definition verwendet werden. Sie ist in der Basisklassenliste nicht zulässig, es sei denn, als Vorlagenargument für eine Vorlagenbasisklasse.
template <class T>
class C1 : typename T::InnerType // Error - typename not allowed.
{};
template <class T>
class C2 : A<typename T::InnerType> // typename OK.
{};
Die typename
Schlüsselwort (keyword) können auch anstelle von class
Vorlagenparameterlisten verwendet werden. Die folgenden Anweisungen sind z. B. semantisch gleichwertig:
template<class T1, class T2>...
template<typename T1, typename T2>...
Beispiel
// typename.cpp
template<class T> class X
{
typename T::Y m_y; // treat Y as a type
};
int main()
{
}
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für