经过多年的 C++ 编码,今天我被问到一个简单的问题,但我确实找不到它的答案,所以我在这里。
除了想知道为什么会发生此错误之外,我想知道如何通过仅修改模板函数(不更改main()
函数)来解决以下错误
template <class T>
T Add(T first, T second)
{
return first + second;
}
int main()
{
auto sample_1 = Add(1, 2); // Works
auto sample_2 = Add(1.f, 2.f); // Works
auto sample_3 = Add(1.f, 2); // Error: no instance matches the argument types: (double, int)
return 0;
}