C++中模版到底该如何实例化?
在看C++程序设计语言(特别版)时,看到300页如下代码:
template<class T> T sqrt(T);
template<class T> complex<T> sqrt(complex<T>);
double sqrt(double);
void f(complex<double> z)
{
sqrt(2); //sqrt<int>(int)
sqrt(2.0); //sqrt<double>(double)
sqrt(z); //sqrt<double>(complex<double>)
}
我不明白为什么最后一个调用实例化的是sqrt<double>(complex<double>),有哪位大神能解释解释,或者推荐一些讲解模版实例化的文章?????????????? C++模版 模版实例化 C++特别版
[解决办法]
sqrt<double>(complex<double>)
在这里sqrt<double>的<double>是指class T=double,不是指函数的返回值是double。