1. auto会忽略顶层const,保留底层const
  2.  
  3. int i = ;
  4.  
  5. const int* const p = &i;
  6.  
  7. auto p2 = p; //p2是const int*,不是const int* const
  8. //*p2 = 4; //错误,p指向常量
  9. p2 = nullptr; //正确,p2本身不是常量
  10.  
  11. auto不会保留引用类型,应该使用auto&
  12.  
  13. int& x = i;
  14.  
  15. auto m = x; //m是int,不是int&
  16. auto& n = x; //n是int&
  17.  
  18. decltype(variable)回保留顶层const和底层const
  19.  
  20. decltype(p) p3 = p; //p3是const int* const
  21. //*p3 = 4; //错误
  22. //p3 = nullptr; //错误
  23.  
  24. decltype也会保留引用类型,decltype((variable)) 双括号的结果永远是引用
  25.  
  26. int* p = &i;
  27.  
  28. decltype(*p) r = i; //解引用指针得到引用类型
  29. decltype((i)) r = i; //引用
  30. decltype(r+) b; // 通过r+0可以得到int
  31. decltype(*p+) c; //意思同上
  32.  
  33. autodecltype定义复杂的函数返回类型
  34.  
  35. int array[]; //array数组,下面定义一个函数,返回这个数组的指针
  36. int (* func())[]; //以前的定义方法
  37. auto func2()->int(*)[]; //C++11 尾置返回类型(星号必须加括号)
  38. decltype(array)* func3(); //用decltype
  39.  
  40. 定义函数指针
  41.  
  42. int fun(int); //函数,下面定义函数指针
  43. int (*ffun)(int); //以前的方法
  44. auto f1(int)->int(*)(int); //用auto
  45. decltype(fun)* f2(int); //用decltype
  46. decltype(x) z = i;
  47.  
  48. z=;
  49.  
  50. cout<<i<<endl; // i=1986

关于auto和decltype的更多相关文章

  1. auto与decltype

    今天搜狗笔试的一道选择题,原题给忘了,但记得所考的知识点.知识点很基础,但很容易忽视. 具体内容可参考C++ Primer. auto :变量取auto后,其所对应的类型        auto一般会 ...

  2. C++ 11 学习1:类型自动推导 auto和decltype

    Cocos 3.x 用了大量的C++ 11 的东西,所以作为一个C++忠实粉丝,有必要对C++ 11进行一个系统的学习. 使用C++11之前,一定要注意自己使用的编译器对C++11的支持情况,有些编译 ...

  3. c++11 auto 与 decltype 详解

    转自: here 一. auto简介 编程时候常常需要把表达式的值付给变量,需要在声明变量的时候清楚的知道变量是什么类型.然而做到这一点并非那么容易(特别是模板中),有时候根本做不到.为了解决这个问题 ...

  4. 【C++】C++11的auto和decltype关键字

    转自: http://www.linuxidc.com/Linux/2015-02/113568.htm 今天要介绍C++11中两个重要的关键字,即auto和decltype.实际上在C++98中,已 ...

  5. C++11新特性— auto 和 decltype 区别和联系

    一. auto简介 编程时候常常需要把表达式的值付给变量,需要在声明变量的时候清楚的知道变量是什么类型.然而做到这一点并非那么容易(特别是模板中),有时候根本做不到.为了解决这个问题,C++11新标准 ...

  6. [转]引用模板类中定义的类型(用typedef或using)以及auto、decltype、typename的使用

    一.背景 使用typedef或者using定义类型别名是非常常见的手段,在c++里面,有时为了封装性,模块性等原因还会在某一个namespace或者class内部定义类型别名. 最近在写c++代码的时 ...

  7. C++ 11 新特性: auto 和 decltype 区别和联系

    一. auto简介编程时候常常需要把表达式的值付给变量,需要在声明变量的时候清楚的知道变量是什么类型.然而做到这一点并非那么容易(特别是模板中),有时候根本做不到.为了解决这个问题,C++11新标准就 ...

  8. C++11 auto and decltype

    1.auto关键字 C++新标准引入auto关键词,此auto与之前C语言的auto意义已经不一样了. 这里的auto是修饰未知变量的类型,编译器会通过此变量的初始化自动推导变量的类型. 例如:aut ...

  9. auto和decltype

    auto 1.编译器通过分析表达式的类型来确定变量的类型,所以auto定义的变量必须有初始值. auto i=; //ok,i为整型 auto j; //error,定义时必须初始化. j=;     ...

随机推荐

  1. Linux Kernel 'dispatch_discard_io()'安全绕过漏洞

    漏洞版本: Linux Kernel 漏洞描述: Bugtraq ID:60414 CVE ID:CVE-2013-2140 Linux是一款开源的操作系统. 由于不充分的检查BLKIF_OP_DIS ...

  2. SQL SERVER大数据分页

    select * from (select rownum r, a.* from (select * from  table_name order by ndatetime desc ) a wher ...

  3. sed删除文本第一个匹配行

    源文本如下,要求删除第一个为happy-123456的行. ----------------------------- aaaaaaa happy- bbbbbb asdasawe happy- ds ...

  4. OC中的野指针(僵尸指针)

    涉及到内存管理问题的都是类类型的变量,而在OC中我们操纵这些对象都是通过操纵指向他们的指针来完成的,一致很多时候会忽略指针存在.比如定义UIView * view = [[UIView alloc]i ...

  5. 福州大学 Problem 2169 shadow

    http://acm.fzu.edu.cn/problem.php?pid=2169 思路:建立一个邻接表,利用搜索中回溯把走过的路标记为1,然后把这些标记为1的值全部加起来. Problem 216 ...

  6. 2013=10=19 ENGLISH 翻译

    数据结构习题及答案 严蔚敏_课后习题答案 http://www.doc88.com/p-243584884293.html 273089354 随着女性获得平等权力的趋势,女性日渐增长的经济权力以及为 ...

  7. [Locked] Meeting Room I && II

    Meeting Room Given an array of meeting time intervals consisting of start and end times [[s1,e1],[s2 ...

  8. 《ACM国际大学生程序设计竞赛题解Ⅰ》——模拟题

    这篇文章来介绍一些模拟题,即一类按照题目要求将现实的操作转换成程序语言. zoj1003: On every June 1st, the Children's Day, there will be a ...

  9. Django之牛刀初试

    一.Django安装 1.使用pip安装django pip3 inistall django 2.将django-admin加入到环境变量中 # 如果是windows的系统需要操作这一步,linux ...

  10. 【asp.net爬虫】asp.NET分页控件抓取第n页数据 javascript:__doPostBack

    最近在模拟HTTP请求抓取数据,但是服务器是asp.net开发的 分页控件代码 <tr> <td align="left">共&nbsp210&am ...