將Dectype 與可變參數模板函數結合使用的尾隨回傳類型
嘗試建立對不同類型的參數求和並傳回的變分模板函數時輸入正確的總和,就會出現常見問題。
問題公式
使用 decltype 作為尾隨回傳類型的基本實作會導致超過兩個參數的未定義行為。為了避免這種情況,可以明確地聲明該函數,但這會導致多個參數的類型推導不正確。
使用自訂特徵類別的解決方案
要克服這些問題,使用名為 sum_type 的自訂特徵類別。它使用 std::add_rvalue_reference 和 std::val 遞歸計算回傳類型。
修改實作
用型別名稱 sum_type
改進的類型推導
此外,對sum_type 的最後一個特化的修改提供了改進的類型推導:
這確保返回類型與decltype(a (b c)) 匹配,與預期的加法一致訂購。
以上是如何將尾隨返回類型與可變參數模板函數一起使用,以推斷出對不同類型的參數求和的函數的正確返回類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!