#include <iostream>
using namespace std;
template <typename x> x functionA (x, x);
int main()
{
functionA <double, double, double> (1, 1) << "\n";
}
template <typename x> x functionA (x arg1, x arg2)
{
return arg1 + arg2;
}
該代碼產生:錯誤:呼叫沒有匹配功能
error: no matching function for call to ‘functionA(int, int)’
什麼可以的原因是什麼?
不是'functionA'表示返回類型是'double'而其他兩個參數也是'double'? –
@Anisha:第一個函數模板中只有一個* type參數*,它是'x'。同樣的類型被用作函數參數和返回類型。 – Nawaz
@Anisha如果參數的類型相同,則不需要多次指定類型。 – Jagannath