c++中关于decltype这个函数的一个小疑问,内详;

#include<iostream>template<typenamet1,typenamet2>voidles(t1a,t2b);intmain(){usingname... #include<iostream>
template <typename t1,typename t2>
void les(t1 a,t2 b);
int main()
{
using namespace std;
int m=30;
double n=21.9;
les(m,n);
}
template <typename t1,typename t2>
void les(t1 a,t2 b)
{using namespace std;
cout<< a+b;
}
这个是一个可以运行的程序,但是我想知道decltype这个函数要如何添加在里面,我看书上只是做了简单介绍,并没有做具体描述,就比如说我把decltype加到上面那个函数要如何该,他有什么用?
展开
 我来答
zjfaok
2013-06-15 · TA获得超过6805个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1567万
展开全部
decltype不是函数而是运算符,并且是sizeof这种不会对操作数求值的运算符
decltype(a)//<-这东西的结果就是a的类型,a的类型的引用或a的类型的右值引用

decltype配合C++11新的函数声明语法可以根据参数类型决定返回值类型,例如可以写成
template <typename t1,typename t2>
auto les(t1 a,t2 b) -> decltype(a+b)
{using namespace std;
return a+b;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式