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

相关推荐
壹号用户5 分钟前
python学习之可迭代对象&迭代器对象
python·学习
虚行9 分钟前
Python学习入门
开发语言·python·学习
科学创新前沿34 分钟前
机器学习催化剂设计专题学习
python·学习·机器学习·催化剂·催化剂设计
WIN赢2 小时前
【数据结构与算法_学习精华】
学习
黎宇幻生6 小时前
Java全栈学习笔记39
java·笔记·学习
诸葛悠闲9 小时前
XCP协议在以太网上实现的配置
学习
遇印记10 小时前
大二java学习笔记:二维数组
java·笔记·学习
爱吃甜品的糯米团子10 小时前
Linux 学习笔记之进程管理、网络基础与常用软件安装
linux·网络·学习
Purple Coder12 小时前
面试-上海电力大学研一的学习经验
学习
饮浊酒13 小时前
Python学习-----小游戏之人生重开模拟器(普通版)
python·学习·游戏程序