有个问题请教,关于显示具体化

如下图代码,运行结果是5和19.12图片

但是如果把模板改成下图,则运行结果是5和9.12,编译器不选择显示具体化了,请教理由是什么?小弟拜谢图片

你把两个shownum函数的前后位置对换看看。。

按照我的理解,编译器选择调用两个函数的顺序是:shownum有两个版本,具体化和模板,实参类型是double,与具体化的形参double&完全匹配,原因是c++允许的无关紧要转换,实参type和形参type&完全匹配。而且显示具体化比模板的优先级要高,所以选择具体化。但运行结果却选择了模板,真是让我不明白啊。

http://blog.csdn.net/beyondhaven/article/details/4204345