这段代码给了我输出:
The sqrt of 1.234 is: 1.52276 why is this diffrent from: 1.11086 1.11086
Run Code Online (Sandbox Code Playgroud)
为什么?
#include <iostream>
using namespace std;
template<typename T>
T sqrt(T x)
{
return x*x;
}
template<typename T>
void print_sqrt(T x)
{
double tmp = sqrt(x);
cout << "The sqrt of " << x << " is: " << sqrt<double>(x) << " why is this diffrent from: " << sqrt(x) << " " << tmp << endl;
}
int main()
{
print_sqrt<double>(1.234);
system("pause");
}
Run Code Online (Sandbox Code Playgroud)
该std::sqrt功能(也就是当没有提供一个模板参数,你在呼唤什么)计算平方根,而你的版本计算方.