typename

Informuje kompilator, że nieznany identyfikator jest typem.

typename identifier;

Uwagi

Używaj tego słowa kluczowego tylko w definicjach szablonów.

To słowo kluczowe musi być używane, jeżeli nazwa jest nazwą kwalifikowaną, zależną od argumentu szablonu; jest opcjonalne, jeśli nazwa kwalifikowana nie jest zależna.Aby uzyskać więcej informacji, zobacz Szablony i rozwiązywanie nazw.

Typename może być używana przez dowolny typ, w dowolnym miejscu deklaracji lub definicji szablonu.Deklaracja ta jest niedozwolona na liście klasy podstawowej, chyba że jako argument szablonu dla szablonu klasy podstawowej.

template <class T>
class C1 : typename T::InnerType // Error - typename not allowed.
{};
template <class T>
class C2 : A<typename T::InnerType>  // typename OK.
{};

Słowo kluczowe typename może być również użyte zamiast słowa kluczowego class w szablonach list parametrów.Na przykład, poniższe instrukcje są identyczne:

template<class T1, class T2>...
template<typename T1, typename T2>...

Przykład

// typename.cpp
template<class T> class X
{
   typename T::Y m_y;   // treat Y as a type
};

int main()
{
}

Zobacz też

Informacje

Słowa kluczowe języka C++

Inne zasoby

Szablony