「typename」關鍵字的語法
當引用作為從屬名稱的巢狀名稱時,在C 中使用「typename」關鍵字,這意味著它嵌套在具有未知參數的模板實例中。此關鍵字明確指定名稱表示類型,特別是當推斷的實體(值、類型或範本)不明確時。
巢狀名稱中「typename」的使用
考慮以下程式碼片段:
template<class K> class C { struct P {}; vector<P> vec; void f(); }; template<class K> void C<K>::f() { typename vector<P>::iterator p = vec.begin(); }
這裡,「typename」關鍵字是必要的將p 宣告為型,即P 結構向量的迭代器。如果沒有“typename”,編譯器會將序列向量
::iterator 解釋為表示值或函數的表達式,這是不正確的。
需要「typename」的其他情況
除了巢狀名稱之外,以下還需要「typename」關鍵字場景:
以上是何時以及為什麼在 C 模板中需要'typename”關鍵字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!