Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Vorlagendefinitionen teilt typename
dem Compiler mit, dass ein unbekannter Bezeichner ein Typ ist. In Vorlagenparameterlisten wird damit ein Typparameter angegeben.
Syntax
typename
identifier
;
Hinweise
Das Schlüsselwort typename
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.
Das Schlüsselwort typename
kann von jedem Typ an einer beliebigen Stelle in der Vorlagendeklaration oder -definition verwendet werden. In der Basisklassenliste ist es nur als Vorlagenargument für eine Vorlagenbasisklasse zulässig.
template <class T>
class C1 : typename T::InnerType // Error - typename not allowed.
{};
template <class T>
class C2 : A<typename T::InnerType> // typename OK.
{};
Das Schlüsselwort typename
kann in Vorlagenparameterlisten auch anstelle von class
verwendet werden. Die folgenden Anweisungen sind z. B. semantisch äquivalent:
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()
{
}