C++ 0x 之 decltype 和 auto 受 VS 2010 支持

文 / 李博(光宇广贞)

       本篇实验平台信息请见《这篇文章》


       在《C++ 0x 新标准全部革新提案文档列表》中,N1478 N1527 N1607 N1705 N1978 N2115 N2343 等文件提案向新标准语言内核中添加 decltype 算符和 auto 关键字(旧体新义)。该提案由 BS 参与设计。decltype 算符用于查询表达式类型;auto 关键字修饰变量声明,指示编译器根据变量的初始化表达式推导变量应有的类型。


       Auto

       关于 auto 关键字的用法定义很明确,也没什么花样。首先是定义变量,这里 auto 其需求、其存在价值、其意义、其用法,和 C# 下的 var 关键字一模儿一样。和 var 一样,auto 声明的变量必须“在声明处完成初始化”,编译器才可根据初始化表达式推导变量的类型。无论 auto 还是 var,都算是强类型与易用性之间的妥协罢。

       不过 C++ 下的 auto 比 C# 下的 var 要麻烦一些。因为 C++ 把“指针、引用、值”在语义上分得太清楚了。所以在使用上,会带来一些困惑,或者用当下流行的词儿,叫“纠结”……比如如下用法:

1

       在此,var1 和 var2 都会被推导为 int* 型。不过“引用”就另说了,比如如下用法:

2

       在此,refInt 是 int& 型,而 var3 是

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值