Поделиться через


typename

Сообщает компилятору, что неизвестный тип identifier.

typename identifier;

Заметки

Используйте это ключевое слово только в определениях шаблона.

Это ключевое слово следует использовать, если имя зависит от полного имени в аргументе шаблона; он является необязательным, если проверенное имя не зависит от.Дополнительные сведения см. в разделе шаблоны и разрешение имен.

TypeName может использоваться любым типом в любом объявлении или определении шаблона.Он не допускается в списке базового класса, если в качестве аргумента шаблона к базовому классу шаблона.

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

TypeName ключевое слово также можно использовать вместо класс в списках параметров шаблона.Например, следующие выписки идентичны:

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

Пример

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

int main()
{
}

См. также

Ссылки

Ключевые слова C++

Другие ресурсы

Шаблоны