다음을 통해 공유


typename

템플릿 정의 typename 에서 알 수 없는 식별자가 형식이라는 힌트를 컴파일러에 제공합니다. 템플릿 매개 변수 목록에서 형식 매개 변수를 지정하는 데 사용됩니다.

구문

typename identifier;

설명

typename 템플릿 정의의 이름이 템플릿 인수에 종속된 정규화된 이름인 경우 키워드(keyword) 사용해야 합니다. 정규화된 이름이 종속되지 않은 경우 선택 사항입니다. 자세한 내용은 템플릿 및 이름 확인을 참조 하세요.

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 템플릿 매개 변수 목록 대신 class 키워드(keyword) 사용할 수도 있습니다. 예를 들어 다음 문은 의미상 동일합니다.

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()
{
}

참고 항목

템플릿
키워드