declare type -->decltype

自动类型推导 decltype

decltype  自动类型推导规则
decltype  应用场景
decltype  自动类型推导规则

常规:1. 表达式为普通变量或者普通表达式或者类表达式,在这种情况下,使用decltype推导出的类型和表达式的类型是一致的

class A {
public:
	string s;
	static const int b = 100;
};
 
auto x = 10;
decltype(x)y = x;  // y/x:int
 
const int& z = x;
decltype(z)w = z;  //w:const int &
 
decltype(A::b)n = 1; //n:const int
 
A i;
decltype(i.s)m = "hello";  //m:string

        2.表达式是函数调用,使用decltype推导出的类型和函数返回值一致

特殊:当表达式是一个左值 或者 被()包围,使用decltype推导出的是该类型的引用

decltype 的应用场景

多用于模板中不确定类型的推导

1.容器不确定 -->  迭代器类型的不确定

T()是匿名对象

2.函数的返回值不确定(由于return 的 变量类型不确定)

template<typename T>
??? add(T a,T b)
{
    return a+b;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值