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

相关推荐
软件黑马王子33 分钟前
C#系统学习第八章——字符串
开发语言·学习·c#
strongwyy3 小时前
蓝牙墨水屏上位机学习(2)
学习
九皇叔叔3 小时前
(3)手摸手-学习 Vue3 之 变量声明【ref 和 reactive】区别
学习
The_cute_cat5 小时前
Ajax和Axios的初步学习
前端·学习·ajax
amazinging5 小时前
北京-4年功能测试2年空窗-报培训班学测开-第四十三天
python·学习
祁思妙想6 小时前
八股学习(五)---MySQL
学习
虾球xz6 小时前
CppCon 2018 学习:THE MOST VALUABLE VALUES
开发语言·c++·学习
丰锋ff7 小时前
计网学习笔记第2章 物理层(灰灰题库)
笔记·学习
Chef_Chen8 小时前
从0开始学习R语言--Day39--Spearman 秩相关
开发语言·学习·r语言
天水幼麟14 小时前
动手学深度学习-学习笔记(总)
笔记·深度学习·学习