🍓auto关键字C++11
2022-5-1
| 2023-8-2
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
C++11标准引入auto类型说明符,让编译器去推断变量的类型,使用auto的变量必须具有初始值:
 
auto可以定义多个变量,声明中的所有初始值必须拥有一致的类型:
当涉及到auto推断的引用、指针、const混杂在一起时会变得尤其复杂:
 
编译器推断出来的 auto类型和初始值的类型并不完全一样,会适当地改变结果类型,使其更符合初始化规则:
  • 当引用被用作初始值时,真正参与初始化的其实是引用对象的值。编译器以引用对象的类型作为 auto 的类型
    • auto 一般会忽略顶层 const,同时底层 const 则会保留下来
       
      如果需要顶层const,需要显式写出:
       
      还可以用auto声明引用,此时原来的初始化规则仍然适用:
      设置一个类型为auto的引用时, 初始值中的顶层常量属性仍然保留。和往常一样, 如果给初始值绑定一个引用, 则此时的常量就不是顶层常量了。
       
      要在一条语句中定义多个变量,切记, 符号&*只从属于某个声明符,而非基本数据类型的一部分, 因此初始值必须是同一种类型:
       
       
      auto 不能作为函数的参数
       
    • C++
    • 类型别名decltype类型指示符
      目录