我在用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;
}
class T2
或使用decltype(first) second
使second
不可推导? - Piotr Skotnicki