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

Vorlagen
Schlüsselwörter