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()
{
}
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應