关闭

多参数的模版函数

117人阅读 评论(0) 收藏 举报
分类:
#include <iostream>

using namespace std;
template<typename T1,typename T2,typename RT>
RT Add(T1 a,T2 b)
{
    return static_cast<RT>(a+b);
}

void test_1()
{
    cout << Add<char,float,double>('a',100) << endl;
}

int main()
{
    test_1();
    cout << "----end----" << endl;
    return 0;
}
//带有返回类型的模版参数不能进行自动类型推导
//只能进行显式的调用
//下面是一种不完美的解决方案,把返回类型放在第一个参数类型,其它的进行类型的自动推导

#include <iostream>

using namespace std;
template<typename RT,typename T1,typename T2>
RT Add(T1 a,T2 b)
{
    return static_cast<RT>(a+b);
}

void test_1()
{
    cout << Add<double>('a',100) << endl;
}

int main()
{
    test_1();
    cout << "----end----" << endl;
    return 0;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:109258次
    • 积分:2894
    • 等级:
    • 排名:第12853名
    • 原创:175篇
    • 转载:67篇
    • 译文:0篇
    • 评论:10条
    最新评论