派生類別模板中無法識別的Typedef
聲明從基類模板A 繼承的派生類模板B 時,預計typedef A 中定義的內容可以在B 中存取。但是,在提供的範例中,存取B 中的Vec_t 失敗並出現錯誤
根據C 標準(14.6.2/3),在類別範本定義和成員定義中,非限定名稱尋找不會擴展到依賴模板參數的基底類別。這表示在衍生類別範本中不允許對基底類別中定義的 typedef 進行非限定存取。
要解決此問題,必須在衍生類別範本中使用 typedef 的全名。這可以透過明確指定基類作用域來實現,如下所示:
透過使用基類作用域明確限定名稱,編譯器可以正確解析對基類中定義的Vec_t typedef的引用模板。
以上是為什麼我的基底類別模板中的 typedef 在衍生類別模板中無法存取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!