effective modern c++(条款1-4)型别推导

条款1–理解模板型别推导

  • 具有引用型别的实参会被当成非引用型别来处理
  • 对万能引用形参推导时,左值会进行特殊处理
  • 按值传递,忽略const volatile
  • 数组或者函数型别推导,实参会退化为指针,除非被用来初始化引用

条款2–理解auto型别推导

auto会假定使用大括号括起来的初始化表达式代表一个std::initializer_list,但是模板型别推导不会。
函数返回值和lambda中的形参中使用auto,意思是使用模板型别推导。

条款3–理解decltype

返回变量或者表达式的型别
对于型别为T的左值表达式,除非该表达式仅有一个名字,decltypez总是返回T&
decltype(auto)应用decltype规则

条款4–掌握查看型别推导结果的方法

  • 诊断器诊断信息
    声明未定义的类模板,然后用要检测的变量的decltype构造一个该类,编译报错。
  • 运行时输出
    利用标准库中的typeid().name()
    利用boost.TypeIndex
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值