论decltype和auto的区别

 
decltype和auto的区别
①对引用变量的不同之处:auto将引用变量赋给变量后,变量的类型为引用变量所对应的变量的类型。而decltype则是为引用类型。例子如下:
int i = 0,&r = i;
//same
auto a = i;
decltype (i)b = i;
//different
auto c = r; c为int 类型
decltype (r)d = r;//d为int &类型
②处理底层const的方式不同
auto一般会忽略掉顶层的const,同时底层的const会被保留下来
例子:
const int ci = i,&cr = ci;
auto b = ci;整数
auto c = cr;整数
auto d = &i;整型指针
auto e = &ci;指向整数常量的指针
decltype 则会返回该变量的完整类型(包括顶层const和引用在内)
例子:
const int ci = 0,&cj = ci;
decltype (ci) x = 0;const int 型
decltype (cj) y = x;const int 型
decltype (cj) z ;错误,z是一个引用,引用必须初始化
 
另外decltype ((variable))  (注意是双层括号)的结果永远是引用,而decltype(variable)结果只有当variable本身是一个引用的时候才是一个引用。

论decltype和auto的区别的更多相关文章

  1. height:100%和height:auto的区别

    一直不明白height:100%和height:auto的区别,最近在制作前端页面时都用了height:100%;overflow:hidden; ,可是有些浏览器出现莫名的奇妙的问题,但换成heig ...

  2. CSS width:100%和width:auto的区别

    width:100%和width:auto的区别 width:auto比较聪明,如果margin已经左右占去10px的空间,那么width给的值就是580px. <style> div{ ...

  3. 宽度的100%和auto的区别

    前段时间做项目,发现分不清width设为100%和auto的区别,实在是太水了,就查了点资料,做个总结,有不对的地方欢迎大家指出. width:auto 块级元素默认的宽度值.看一下MDN上的解释:T ...

  4. css height:100%和height:auto的区别

    css height:100%和height:auto的区别 height:auto,是指根据块内内容自动调节高度.height:100%,是指其相对父块高度而定义的高度,也就是按照离它最近且有定义高 ...

  5. C++ 中 auto 与 decltype 的用法与区别

    最近在恶补 C++ 知识的时候,学习到了一些 C++11 标准的新特性,利用这些新特性,我们能够更快地提高编程效率,从而实现我们的目标,在此特意记下学习过程中所学习到的一些东西,方便日后的回顾和复习. ...

  6. table-layout引起的探索——fixed和auto的区别

    问题:最近想把mui提供的底部导航组件样式单独抽出来,遇到一个问题:给底部图片下的文字设置了超出隐藏,但没有生效,如下图: 注:该底部导航为mui提供的组件 解决:这让我百思不得其解,经过一些琢磨后发 ...

  7. 一维条码Code 128 类型的 A、B、C及Auto的区别

    CODE 128条码是1981年由COMPUTER IDENTICS公司开发的.对128个字符进行标准化的多级别编码.其条码的字符与其表示的数据呈1对1的关系,特点是通过起始字符.代码集字符.转换字符 ...

  8. CSS中inherit指定继承的使用方法和auto的区别

    CSS中的每个属性都有一个特定值"inherit",其含义是指定继承父元素的相应属性,使用inherit一方面在代码上能地表明要继承于父元素的样式属性,另一方面也使子元素继承了那些 ...

  9. width:100%;与width:auto;的区别

    <div> <p>1111</p> </div> div{ width:980px; background-color: #ccc; height:30 ...

随机推荐

  1. Android-蓝牙自动配对与隐藏对话框

    一.概述 本次分析是基于Android7.0的源码. 二.自动配对分析过程 首先,我们分析一下源码的自动配对过程,packages/apps/Settings/src/com/android/sett ...

  2. Android Studio项目用Git上传至码云(OSChina)

    工具: Git安装(官网下载,默认安装即可). 步骤一: 新建一个Android Studio项目: 步骤二: 申请OSChina账号.登陆并创建新项目 1. 2. 3.点击复制,下面在Android ...

  3. 安装CentOs 7.3

    步 下载安装 CentOS 7.3  下载地址 1.官网:https://www.centos.org/download/ 2.centos阿里汇总:https://yq.aliyun.com/zt/ ...

  4. MyDAL - .Where() 之 .WhereSegment 根据条件 动态设置 Select查询条件 使用

    索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...

  5. MongoDB自学(2)

    条件操作符: gt(大于),gte(大于等于),lt(小于),lte(小于等于)E.G:db.People.find({age:{$gt:100}})//查找集合里age大于100的文档 注意:str ...

  6. #034Python选修课第二届Turtle绘图大赛

    Pythonturtle库选修课作业 目录 目录 代码效果 题目要求 合作同学 程序实现 最初目标 实现方式 代码如下 代码效果 题目要求 具体内容可参阅课程教学网站或超星学习通. 按照2人一组,结对 ...

  7. git常用命令说明教程

    git常用命令说明教程 git介绍 是一个分布式的,版本控制软件.每台使用git的电脑都是一个分版本库.svn是集中管理的. 安装git 一 git相关操作 1.官网下载最新版安装https://gi ...

  8. Mysql 创建事件任务

    DELIMITER $$ CREATE DEFINER=`root`@`%` EVENT `test` ON SCHEDULE EVERY 1 DAY STARTS '2019-02-12 00:00 ...

  9. 我一个二本大学是如何拿到百度、网易大厂offer的!

    本文首发在我的微信公众号“程序员柯南”,底部附有二维码.原文阅读 01终于步入大学 我既没有跨过山和大海,也没有穿过人山人海,我就是我,一个2020届普通本科大学生.身为读者的你,关注了我,自然是想获 ...

  10. gradle配置国内镜像

    对单个项目生效,在项目中的build.gradle修改内容 buildscript { repositories { maven { url 'http://maven.aliyun.com/nexu ...