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加到上面那个函数要如何该,他有什么用? 展开
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加到上面那个函数要如何该,他有什么用? 展开
1个回答
展开全部
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;
}
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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询