一个函数模板即有特化版又有重载版,编译器会选哪个?
以下代码来自:
为什么不要特化函数模版 的例3
1
#include
2
3
using
namespace
std;
4
5
template
6
void
f(T)
7
{
8
cout
12
void
f(
int
*
)
13
{
14
cout
18
void
f(T
*
)
19
{
20
cout
代码中的f(int*)调用有两个选择,一是特化版,另一个是重载版。
结果是编译器选了重载版:Overload of base template.
(与我的期望相反,我并不想让指针版为int*实例化,所以辛辛苦苦为int*作了特化,结果编译器没理我!)
原因是:编译器是从所有的重载函数中选择,而特化不是一个重载。
这时仅有两个重载。当选中一个重载函数模板后,再在该模板的特化版本中选择。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: spring boot项目访问外部http请求的解决方案
在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求。针对这一需求以前的做法就是访问外部请求都要经过httpClient 需要专门写一个方法,来发送http请求,这个就不说了,网上一搜全都是现成的方法。spring…