文章目录
- 内容提炼
- 代码一(内置类型)typename
- 代码二(自定义类型) class
- 注意点
内容提炼
- decltype(expression) 关键字:得出experssion的类型
- typeid(variable) 返回variable的类型
- auto + + ->decltype{} 自动推演返回值
- 特化与偏特化
代码一(内置类型)typename
#include
using namespace std;
//auto + + ->decltype{} 自动推演返回值
template
auto add(T a,U b)->decltype(a+b){
return a + b;
}
//特化1:T和U都是位置的,但是针对泛型幽默中特征,(都是指针量输入)
template
auto add(T* a,U* b)->decltype(*a+*b){
return *a + *b;
}
//特化2: 全特化:针对某一个具体情况
template <>
int add(int a,int b){
return a+b;
}
int main(){
int a,b;
double m,n;
cout << " 33[33mplease input a(int),b(int),m(double),n(double) : 33[0m"<> a >> b >> m >> n;
cout << typeid(a+b).name() << endl;
cout << " 33[32madd("<