C++标准学习--decltype

decltype / auto 是具有类型推导功能的 类型 描述/占位 符

  • decltype: 获取对象或表达式的类型
  • auto: 类型自动推导

decltype 可以获取变量类型, (并不同于python的type,但python能打印出type获取的名称, C++通过typeid实现)。

int main()

{

int val = 10;

char ch = 'b';

string str = "baidu";

cout << typeid(val).name() <<endl;

cout << typeid(ch).name() <<endl;

cout << typeid(str).name() <<endl;

return 0;

}

结果为:

在特殊场合有一定作用,比如在基于部分闭源的库开发一些功能的时候可以获取未知类型变量的类型。但不确定IDE能否基于decltype的推导自动获知类似结构而给与编程时的提示能力。

如果希望简化复杂类型的名称,感觉在可读性或者效率上不如using 或者typedef 好。

在实现较为自动化的编程框架的时候,decltype似乎显得比较有用了,与auto功能个别方面重叠,但比auto强大,auto只在赋值是推导,而decltype 可以推导类型而定义新的具有初值的变量。

另外在对于lambda闭包的类似使用上也很有用。

相关推荐
序属秋秋秋1 小时前
《C++初阶之内存管理》【内存分布 + operator new/delete + 定位new】
开发语言·c++·笔记·学习
许白掰1 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
B1nna2 小时前
Docker学习
学习·docker·容器
promising-w8 小时前
【运算放大器专题】基础篇
嵌入式硬件·学习
宝山哥哥8 小时前
网络信息安全学习笔记1----------网络信息安全概述
网络·笔记·学习·安全·网络安全
前端开发与ui设计的老司机8 小时前
从UI设计到数字孪生实战:构建智慧教育的个性化学习平台
学习·ui
X Y O8 小时前
神经网络初步学习3——数据与损失
人工智能·神经网络·学习
霖0010 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发
巴伦是只猫11 小时前
【机器学习笔记 Ⅲ】1 无监督学习
笔记·学习·机器学习
武昌库里写JAVA12 小时前
vue3面试题(个人笔记)
java·vue.js·spring boot·学习·课程设计