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

C++11新特性:decltype类型推导

       上一节所讲的 auto,用于通过一个表达式在编译时确定待定义的变量类型,auto 所修饰的变量必须被初始化,编译器需要通过初始化来确定 auto 所代表的类型,即必须要定义变量。若仅希望得到类型,而不需要(或不能)定义变量的时候应该怎么办呢?
       C++11新增了 decltype 关键字,用来在编译时推导出一个表达式的类型。
它的语法格式如下:
       decltype (exp)
       其中,exp表示一个表达式 (expression)
       从格式上来看,dectype 很像sizeof一用来推导表达式类型大小的操作符。类似于sizeof,decltype 的推导过程是在编译期完成的,并且不会真正计算表达式的值。

        decltype在技术和使用上和sizeof非常像,都需要编译器在编译期计算类型,但是sizeof返回的是整数,而decltype得到的是类型

decltype和auto的异同:

与auto不同点:

decltypr的类型推导并不是像auto一样是从变量声明的初始化表达式获得变量的类型,decltype总是以一个普通的表达式为参数,返回该表达式的类型。

与auto相同点:

①、作为一个类型指示符,decltype可以将获得的类型来定义另外一个变量;

②、declttype类型推导也是在编译时进行的
 

示例如下:

 

 

 

 

 

 

 

 

 

http://www.lryc.cn/news/90402.html

相关文章:

  • linux下DD 命令常用操作 —— 筑梦之路
  • android 12.0状态栏高度为0时,系统全局手势失效的解决方案
  • 使用Jmeter进行http接口性能测试
  • 公开报名|CCPTP云渗透测试认证专家第二期培训班,将在云网基础设施安全国家工程研究中心举办
  • 【App自动化测试】(十八)多设备管理平台——openSTF
  • Kafka的ACK配置含义详解
  • Redis主从架构、数据同步原理、全量同步、增量同步
  • 面了一个测试工程师要求月薪26K,总感觉他背了很多面试题...
  • 大数据简介
  • Elasticsearch数据库
  • Axure教程—表格(中继器)
  • Linux转HTTP代理服务器
  • CPLEX Studio 集成开发环境 (IDE) 介绍
  • 如何在Linux机器中测试存储/磁盘I/O性能?
  • ChatGPT国内免费使用方法【国内免费使用地址】
  • 常微分方程ODE和Neural Ordinary Differential Equations
  • C++ 编译过程(附简单实例)
  • ThingsBoard教程(五四):规则节点解析 Azure IoT Hub Node, RabbitMQ Node
  • 元素偏移量offset
  • 如何让自动化测试框架更自动化?
  • 无屏幕实现连接树莓派
  • 【Android】AMS(一)系统启动流程
  • FineBI6.0基础学习第一课 数据门户
  • 如何部署项目到Tomcat + 第一个Servlet程序
  • 牛客刷题(HTML-Day1)
  • 性能测试如何入门?熬夜7天整理出这一份3000字超全学习指南
  • 信息安全实践1.2(重放攻击)
  • 上海亚商投顾:沪指高开高走 地产股迎来久违反弹
  • Vim学习笔记【Ch02】
  • 《低代码指南》——低代码维格云能源行业解决方案