C++11decltype类型指示符

C++11的decltype类型指示符用于获取表达式的类型而不计算其值。在处理const和引用时,它有别于auto。当decltype与变量结合时,会保留变量的顶层const和引用。如果表达式不是变量,结果将是表达式的结果类型。对于解引用操作,decltype会返回引用类型。使用括号会影响decltype的行为,使结果变为引用类型。
摘要由CSDN通过智能技术生成

C++11引入类型说明符decltype,作用是选择并返回操作数的数据类型,在此过程中,编译器分析表达式并得到它的类型,却不计算表达式的值:

decltype(f()) sum = x;          //sum的类型就是函数f返回的类型

编译器并不实际调用函数f,而是返回f调用发生时的返回类型作为sum的类型。

decltype与const

decltype处理const和引用的方式与auto有些不同。如果decltype使用的表达式是一个变量,则其返回类型为变量的类型(包括顶层const与引用在内):

const int ci = 0, &cj = ci;
decltype(ci) x = 0;             //x的类型是const int
decltype(cj) y = x;             //y的类型是const int &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值