typename

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

구문

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

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

참고 항목

템플릿
키워드