派生範本類別中基底範本類別識別碼的可見性
考慮以下程式碼片段:
當使用GCC g 3.4.4 (cygwin) 編譯時,此程式碼編譯失敗,因為NO_ZEROFILL 對於 Derived 模板類別不可見。此行為可以歸因於 C 中的兩階段查找。
C 中的兩階段查找
當編譯器遇到模板聲明時,它只執行初步的查找該模板中使用的標識符。由於此階段尚未確定 T 的實際類型,因此編譯器無法解析依賴於此類型的標識符,例如 Base
在兩階段查找過程中:
在這種情況下,NO_ZEROFILL在初步查找期間不可見,因為它取決於未知類型 T。因此,您必須在衍生類別中明確指定Base
以上是為什麼基底模板類別的靜態成員在衍生類別中不可存取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!