当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/280080.html

相关文章:

  • Linux之静态库和动态库
  • erlang/OTP 平台(学习笔记)(三)
  • Spring整理-Spring框架中用了哪些设计模式
  • Poi实现根据word模板导出-图表篇
  • windows或mac端口转发
  • Linux工具-搭建文件服务器
  • 深入理解@DubboReference与@DubboService【三】
  • linux主机的免密登录
  • Git常用命令和QA(网摘)
  • PHP AES 加密示例
  • 第十九章:特殊工具与技术
  • 大数据深度学习卷积神经网络CNN:CNN结构、训练与优化一文全解
  • RabbitMQ(九)死信队列
  • KEI5许可证没到期,编译却出现Error: C9555E: Failed to check out a license.问题解决
  • 南京观海微电子----时序图绘制工具
  • Gin CORS 跨域请求资源共享与中间件
  • TS:.d.ts 文件 和 declare 的作用
  • JavaScript-jQuery2-笔记
  • 设计模式之多线程版本的if------Balking模式
  • mybatis核心配置文件介绍
  • Linux完全卸载Anaconda3和MiniConda3
  • Apache Answer,最好的开源问答系统
  • 【C】内存分配
  • MySQL 从零开始:03 基本入门语句
  • 井盖异动传感器,守护脚下安全
  • 复合机器人作为一种新型的智能制造装备高效、精准和灵活的生产方式
  • 重置 Docker 中 Gitlab 的账号密码
  • 任务类型划分
  • docker搭建部署mysql并挂载指定目录
  • 即将推出的 OpenWrt One/AP-24.XY:OpenWrt 和 Banana Pi 合作路由器板