c++ primer plus阅读笔记8---decltype

来源:互联网 发布:室内设计上海知乎 编辑:程序博客网 时间:2024/06/06 02:15

decltype关键字
我们来看下边这样一种情况:

template<class T1,class T2>void ft(T1 x,T2 y){    ...    ?type? z=x+y;  //因为x和y的类型不确定,因此写这个模板函数时候z的类型无法预知,怎么办呢?}

c++有个decltype关键字,可以这么写:

decltype(x+y) xpy=x+y;

当返回值不确定时候,例如:

template<class T1,class T2>?type? gt(T1 x,T2 y){    ...    return x+y;  //x和y的类型不知道,所以返回值类型无法确定    ...}

我们先来看后置返回类型:

double h(int x,int y);//可以写成下边这样:auto h(int x,int y)->double;

因此返回类型未知的情况下,我们可以这么写:

auto gt(T1 x,T2 y)->decltype(x+y){    ...    return x+y;    ...}
原创粉丝点击