Freigeben über


typename

Teilt dem Compiler mit, dass ein unbekannter Bezeichner ein Typ ist.

typename identifier;

Hinweise

Verwenden Sie dieses Schlüsselwort nur in Vorlagendefinitionen.

Dieses Schlüsselwort muss verwendet werden, wenn der Name ein qualifizierter Name ist, der von einem Vorlagenargument abhängig ist; er ist optional, wenn der qualifizierte Name nicht abhängig ist. Weitere Informationen finden Sie unter Vorlagen und Namensauflösung.

Das typename-Schlüsselwort kann von jedem Typ an einer beliebigen Stelle in der Vorlagendeklaration oder -definition verwendet werden. Es ist in der Basisklassenliste nicht zulässig, außer 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.
{};

Das typename-Schlüsselwort kann in Vorlagenparameterlisten auch anstelle von class verwendet werden. Die folgenden Anweisungen sind beispielsweise identisch:

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

Referenz

C++-Schlüsselwörter

Weitere Ressourcen

Vorlagen