typename

在範本定義中, typename 提供一個提示給編譯器,指出未知的識別碼是類型。 在範本參數清單中,它會用來指定類型參數。

語法

typename identifier;

備註

typename如果範本定義中的名稱是相依于樣板引數的限定名稱,則必須使用 關鍵字;如果限定名稱不相依,則為選擇性。 如需詳細資訊,請參閱 範本和名稱解析

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

另請參閱

範本
關鍵字