![](/img/trans.png)
[英]Why does the variadic template argument deduction fail for this function pointer?
[英]Why does this template argument deduction/overload resolution fail?
為簡單起見,讓我們調用第一個重載foo1
並調用第二個重載foo2
。
使用模板,問題是你不能根據[temp.deduct.call] / 6推斷出外部foo
的模板參數:
如果參數是包含一個或多個函數模板的重載集,則該參數將被視為非推導的上下文。
沒有模板,程序會考慮所有可能性foo1(foo1)
, foo1(foo2)
, foo2(foo1)
, foo2(foo2)
並根據[over.over] / 6選擇唯一可行的foo2(foo1)
:
[ 注意:如果
f()
和g()
都是重載函數,則必須考慮可能性的叉積來解析f(&g)
或等價表達式f(g)
。 - 結束說明 ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.