C++学习·处理类型

decltype和auto的区别

  1. auto 会忽略顶层const,decltype不会
  2. 不管对于引用(&a)还是解引用(*p)操作,auto的结果都是对象本身的类型,而decltype得到的结果都是引用类型
const int ci = i,&cr = ci,*p = ci;

auto a = ci;   //a是一个整数(顶层const被忽略)
auto b = cr;   //b同上
auto &c = ci;  //c是一个整型常量的引用(仍遵循引用初始化的规则)
auto d = *p;   //d是一个整数

decltype(ci) dx = 0;   //dx是一个整型常量
decltype(cr) dy = dx;  //dy是一个整型常量的引用,初始化为dx的引用
decltype(*p) dz = dx; //dz同上


需要注意的是,decltype((variable))的结果永远都是引用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值