C++不允许直接推导auto返回类型,如果要用auto返回类型,需要用decltype 声明尾返回类型
如下面代码:
template<typename A,typename B>
auto add(A x, B y) ->decltype(x + y)
{
return x + y;
}
调用方式还是和普通的模板元函数一样
std::cout << add(5,8) << std::endl;
std::cout << add(std::string("I"),std::string("love")).c_str() << std::endl;
可以用typeid输出类型名吗?
std::cout << typeid(add(std::string("123"), std::string("456"))).name() << std::endl;
运行输出: