模板函数示例代码 :
//使用模板函数实现任意类型相加
template<typename T1,typename T2>
//auto表示函数add返回类型自动侦测,
//->表达函数返回值
//decltype(a+b)表示自动侦测a+b返回类型与值,类型匿名函数(lambda)
auto add(T1 a,T2 b)->decltype(a+b);
表达式返回类型侦测
map<int,string> myMap;
myMap.insert({0,"hello"});
//自动计算表达式返回类型
for (decltype(myMap)::value_type myType:myMap) {
cout<<myType.first<<","<<myType.second.c_str()<<endl;
}
cout<<"====================="<<endl;
myMap.insert({1,"world"});
for (auto x:myMap) {
cout<<x.first<<","<<x.second.c_str()<<endl;
}
注:decltype不能侦测函数及lambda表达式