0
這是由C一個鍛鍊++入門第5版:模板函數參數扣
template<typename T>
void f1(T, T){}
int i = 0, *p1 = &i;
const int *cp1 = &i;
f1(p1, cp1);
但是編譯器會產生一個錯誤:爲什麼錯誤包括點參考
no matching function for call to 'f1(int*&, const int*&)'
我不知道?我認爲參數推導是'f1(int *,const int *)'。
只有當**參數類型是* universal reference *時才適用**規則**嗎? –
@DeanSeo我認爲你不理解。我的答案與模板論證扣除無關。這只是關於GCC如何選擇在診斷消息中顯示某些信息。 – Brian
對不起。是的,我再讀一遍,你是對的。 :) +1。 –