decltype 是 C++11 新增的一个关键字,它和 auto 的功能一样,都用来在编译时期进行自动类型推导。

decltype 是“declare type”的缩写,译为“声明类型”。

auto 并不适用于所有的自动类型推导场景, decltype 关键字也被引入到 C++11 中。

auto 和 decltype 用法:
auto varname = value;
decltype(exp) varname = value;

其中,varname 表示变量名,value 表示赋给变量的值,exp 表示一个表达式。

auto 根据=右边的初始值 value 推导出变量的类型,而 decltype 根据 exp 表达式推导出变量的类型,跟=右边的 value 没有关系。

另外,auto 要求变量必须初始化,而 decltype 不要求。

原则上讲,exp 就是一个普通的表达式,它可以是任意复杂的形式,但是我们必须要保证 exp 的结果是有类型的,不能是 void;

#include <iostream>using namespace std;int main()
{int a = 0;decltype(a) b = 1;  //b 被推导成了 intdecltype(10.8) x = 5.5;  //x 被推导成了 doubledecltype(x + 100) y;  //y 被推导成了 doublecout << a << endl;cout << b << endl;cout << x << endl;cout << y << endl;getchar();return 0;
}

先设置Dev C++支持C++11;

运行如下;

看一下Dev C++,自带的编译器是GCC;也可以添加其他C++编译器;

C++11 新增关键字decltype学习相关推荐

  1. 【C++】C++11新增关键字详解

    目录 一.auto 1.auto 用来声明自动变量,表明变量存储在栈(C++11之前) 2.auto用于推断变量类型示例(C++11) 3.声明或定义函数时作为函数返回值的占位符,此时需要与关键字 d ...

  2. C++11新增的关键字decltype(auto)

    一.函数模板存在的类型问题 template<class T1,class T2> void fun(T1 a, T2 b) {(T1 or T2?)y = a + b; } 语句y = ...

  3. C++11 新关键字

    文章目录 1.auto 1.1 用法示例 2.using 3.decltype 3.1 decltype 推导规则 3.2 用法示例 4.nullptr_t 与 nullptr 5.constexpr ...

  4. C++ 11 nullptr关键字

    C++ 11 nullptr关键字 转载:https://www.cnblogs.com/DswCnblog/p/5629073.html 熟悉C++的童鞋都知道,为了避免"野指针" ...

  5. C++11之后的decltype类型指示符

    C++11之后的decltype类型指示符 一.什么是decltype类型指示符 二.typeid运算符 三.使用decltype指示符 四.decltype和引用 五.decltype(auto) ...

  6. 1-1 机器学习和深度学习综述-paddle

    课程>我的课程>百度架构师手把手教深度学习>1-1 机器学习和深度学习综述> 1-1 机器学习和深度学习综述 paddle初级课程 王然(学生) Notebook 教育 初级深 ...

  7. 《强化学习周刊》第11期:强化学习应用之模拟到真实

    No.11 智源社区 强化学习组 强 化 学  习 研究 观点 资源 活动 关于周刊 强化学习作为人工智能领域研究热点之一,它在模拟到真实领域中的应用研究进展与成果也引发了众多关注.为帮助研究与工程人 ...

  8. C++11新特性decltype

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处 本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105042574 C ...

  9. 《西瓜书》-11.特征选择与稀疏学习

    11.特征选择与稀疏学习 11.1.子集搜索与评价 处理高维数据的两大主流技术:降维与特征选择. 降维从一定程度起到了提炼优质低维属性和降噪的效果,特征选择则是直接剔除那些与学习任务无关的属性而选择出 ...

最新文章

  1. Awk 实战详解教程
  2. 边缘计算 — 与车联网
  3. 排序算法之递归算法(归并排序)
  4. android flux 与mvp,使用 MVP 时在设计上的考量
  5. 服务化改造实践 | 如何在 Dubbo 中支持 REST 1
  6. YouTube深度学习推荐系统的十大工程问题
  7. Python与机器视觉(一)安装与环境
  8. MARKDOWN使用小计
  9. PHP重置static静态变量
  10. 非线性激活函数的作用
  11. 多个excel工作簿合并_EXCEL多表、多工作簿合并拆分,随心所欲(完善版)
  12. win10休眠_Win10关机后一动键盘就开机怎么解决
  13. 网页设计作业-HTML5+CSS大作业——端午节日(25页) 图片滚动
  14. 三菱fx5u modbus tcp fb块用法_FX5U强势来袭
  15. IT资讯精选(2022-09-11)
  16. GShutDown:自动化关机鄙吝材
  17. python telnet登录OLT查询
  18. SATA协议固态硬盘的S.M.A.R.T详解
  19. Multiplayer Moo[ [ 并查集+dfs连通块 ] / [ dfs ] ]
  20. 前端入门技术书籍推荐:JavaScript高级程序设计等,吐血整理!

热门文章

  1. Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)
  2. 硬盘安装Windows 7和Ubuntu 10.04双系统
  3. Set Up a Mobile Worker
  4. 国产化达梦数据库数据迁移文档:oracle11g数据库转达梦8数据库实例演示
  5. Node.js 安装报错提示“The error code is 2503“问题解决方法
  6. Windows 技术篇 - 电脑秒速关机设置方法,注册表修改3个缓冲等待时间
  7. 概率论与数理统计(二)
  8. 第7周实践项目2 队列的链式存储结构及其基本运算的实现
  9. 可简单图化算法(Havel算法)
  10. JavaScript代理模式