函數重載中的範本參數推導問題
您遇到了編譯器在呼叫重載函數時無法推導出範本參數的問題。讓我們深入研究此行為背後的原因。
您的程式碼定義了兩個模板函數,每個函數都有特定的參數和傳回類型。然而,類型名稱 S::type 的明確使用為模板參數 A 和 B 創建了非推導上下文。根據 C 標準 (2003) 第 14.8.2.4 節,僅出現在非推導情境中的範本參數不被考慮參數推導。
在主函數中,您嘗試使用整數值來呼叫這些重載函數,例如 temp(c) 和溫度2(d,7)。編譯器無法推導模板參數,因為 c 是 char 類型,d 是 int 類型,但這些參數僅在非推導上下文中使用。
要解決此問題,您必須在來電。例如,若要使用 char 參數呼叫 temp,您可以寫 temp
透過理解非推導上下文的概念以及模板參數推導的要求,您可以避免這些陷阱並確保您的程式碼可以編譯成功了。
以上是為什麼我的編譯器無法推導出重載函數中的模板參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!