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

news/2024/10/16 22:53:14/

       上一节所讲的 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.ppmy.cn/news/107318.html

相关文章

计算机视觉实战--OpenCV进行红绿灯识别

前言: Hello大家好,我是Dream。 OpenCV是一个开源的计算机视觉库,可以用于实现各种图像和视频处理任务,包括红绿灯识别。可以帮助自动驾驶汽车、智能交通系统等设备准确地识别红绿灯的状态,以便做出正确的决策。今天&a…

ArcGis系列-java调用GP分析

1,实现流程 创建GPServer,使用ArcgisPro添加GP工具运行,然后使用共享web服务发布运行成功的GP任务根据发布成功的GPServer发布地址,解析出GP服务的输入参数和输出参数前端输入gp服务需要的参数,发送给后端来异步提交后端提交后创建轮询任务等待执行结果…

python常用库汇总

文章目录 文件处理图像处理大数据与科学计算人工智能与机器学习数据库网 络Web 框架安 全 Chardet→字符编码探测器,可以自动检测文本、网页、xml的编码。 colorama →主要用来给文本添加各种颜色,并且非常简单易用。 Prettytable → 主要用于在终端或浏…

背靠背储能变流器的原理分析

背靠背变流器是一种用于电力转换的设备,通常由两个相互独立的变流器组成,并通过一定的控制方式进行连接和协调工作。它可以将直流电源转换为交流电源,并具有一定的功率因数调节和电网调节功能。其主要应用领域包括太阳能、风能、能源储存等方面。 背靠背变流器是一种采用对称…

Promise.all()和Promise.race()

Promise.all接收的是数组,得到的结果也是数组,并且一一对应,也可以理解为Promise.all照顾跑的最慢的,最慢的跑完才结束。Promise.race接收的也是数组,不过,得到的却是数组中跑的最快的那个,当最…

【Linux】iptables 防火墙(SNAT/DNAT)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、SNAT 原理与应用二、SNAT转换三、DNAT的介绍1.DNAT概述2.DNAT转换前提条件 四、DNAT转换五、防火墙规则的备份和还原六、tcpdump抓包工具的运用 一、SNAT 原理与…

Form Generator扩展 el-select 数据字典

一、form-generator是什么?✨ ⭐️ 🌟 form-generator的作者是这样介绍的:Element UI表单设计及代码生成器,可将生成的代码直接运行在基于Element的vue项目中;也可导出JSON表单,使用配套的解析器将JSON解析成真实的表单。 但目前它提供的组件并不能满足我们在项目中的…

K8S的服务质量QoS —— 筑梦之路

K8S中的应用服务质量(QoS)介绍 服务质量(QoS)类是Kubernetes的概念,它确定Pod的调度和驱逐优先级 Kubelet使用它来管理驱逐pod的顺序,以及使用高级CPU管理策略允许更复杂的pod调度决策。 QoS由Kubernetes本…