当前位置: 首页 > article >正文

C++11新特性之auto与decltype(总结)

        通过前面两篇博客的学习,相信大家对auto与decltype有了基本的认识。没有学习过的读者可以参考——C++11新特性之auto-CSDN博客与C++11新特性之decltype-CSDN博客。本节主要对它们进行一个总结,帮助读者更好地了解与使用它们。

1.语法区别

auto的使用语法:

         auto name = value;

        根据value值的类型,推导name的类型。

decltype的使用语法:

        decltype(exp) name = value;

        name为变量名,value为变量值,exp是个表达式。根据exp表达式推导变量类型。

auto要求变量必须初始化,decltype则不需要。

2.限定符处理(主要是const)

auto对限定符的推导规则为:

        (1)变量值的类型不是指针或引用,auto直接抛弃限定符,推导为没有限定符的类型。

        (2)变量值的类型是指针或引用,auto则保留限定符。

decltype无论哪种情况都保留限定符。

3.引用处理

decltype会保留引用类型。

auto会抛弃引用类型,推导出原始的类型。

4.总结

auto使用简单,但推导复杂,有些情况会改变变量的类型,并且在一些场景下无法使用。

decltype使用相对复杂,但会保留表达式的任何类型。

大家可以根据实际情况进行合适的选择。


http://www.kler.cn/a/519777.html

相关文章:

  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.2 ndarray解剖课:多维数组的底层实现
  • Linux 入门 常用指令 详细版
  • 【云安全】云原生-Docker(五)容器逃逸之漏洞利用
  • 乒乓球日常烧拍日记之四海绵支撑
  • 「 机器人 」系统辨识实验浅谈
  • RV1126画面质量四:GOP改善画质
  • Java 基础知识
  • zyNo.17(Web题型总结3)
  • STM32 GPIO配置 点亮LED灯
  • macOS使用LLVM官方发布的tar.xz来安装Clang编译器
  • pycharm 运行远程环境问题 Error:Failed to prepare environment.
  • 【Python・机器学习】多元回归模型(原理及代码)
  • Git上传了秘钥如何彻底修改包括历史记录【从安装到实战详细版】
  • Kafka 如何实现高性能
  • 【AI日记】25.01.25
  • 【C++总览】
  • Fossil源码在Windows下编译
  • Kafka运维宝典 (二)- kafka 查看kafka的运行状态、broker.id不一致导致启动失败问题、topic消息积压量告警监控脚本
  • 【DIY小记】减肥10kg保持半年的经验分享
  • 蓝桥杯试题:整数反转
  • Spring Data JPA 实战:构建高性能数据访问层
  • 基于SpringBoot的软件产品展示销售系统
  • w173疫苗发布和接种预约系统
  • 利用metaGPT多智能体框架实现智能体-1
  • Midjourney中的强变化、弱变化、局部重绘的本质区别以及其有多逆天的功能
  • Spring Boot - 数据库集成04 - 集成Redis