如何为两种不同的模板方法解决重载问题?

时间:2016-10-25 03:37:01

标签: c++ templates overloading overload-resolution

如果我有以下模板方法:

template< typename T >
void function( T a )
{
    cout<<"Template T"<<endl;
}

template< typename T >
void function( int a )
{
    cout<<"Function taking Int"<<endl;
}

在调用function< float >( 2.5 )时,第二个函数被称为输出:Function taking Int

如果我尝试实例化float类型的函数,我得

  

void function(float a);

  

void function(int a);

第一个似乎是我传递的双重类型(arg 2.5)的更好匹配。

那么,为什么程序会选择第二种方法?

0 个答案:

没有答案