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闭包的类似使用上也很有用。

相关推荐
吃着火锅x唱着歌11 小时前
深度探索C++对象模型 学习笔记 第四章 Function语意学(2)
c++·笔记·学习
勤劳的进取家11 小时前
应用层基础
运维·网络·学习
xian_wwq12 小时前
【学习笔记】储能系统的铁三角:BMS、PCS、EMS分别管啥
笔记·学习·储能系统
QiZhang | UESTC12 小时前
学习并复现minimind
学习
stm32 菜鸟13 小时前
nucleo-f411re学习记录-14,OTA 固件升级-bootloader与app分区实现
学习
Bechamz13 小时前
大数据开发学习Day24
大数据·学习
在下_诸葛13 小时前
langgraph学习笔记
笔记·python·学习·langgraph教程
charlie11451419113 小时前
现代Qt开发教程(新手篇)1.10——进程
开发语言·c++·qt·学习
绿豆人13 小时前
Cache缓存项目学习2
学习·缓存
山楂树の13 小时前
H.265 (HEVC) 视频解码转逐帧图像 完整实现方案
学习·音视频·h.265