無法從模板推導T
在提供的程式碼中,嘗試推導模板時發生錯誤測試函數的參數T。要理解其中的原因,深入研究「不可推導上下文」的概念至關重要。
在 TMap 的範本定義中,您將一個名為 Type 的別名定義為 std::map
考慮以下場景:如果TMap 對SomeType 有專門化,其中Type 定義為std::map< ;double, double>,編譯器如何僅根據TMap
此外,如果 OtherType 存在另一個 TMap 特化,其中 Type 又是 std::map
請務必記住,編譯器無法對這種關係做出假設模板定義中使用的類型參數之間。因此,在這種不可推導的上下文中,編譯器無法自動推導模板參數 T。
以上是為什麼編譯器不能推導出 `test(TMap::Type)` 中的 `T`?的詳細內容。更多資訊請關注PHP中文網其他相關文章!