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 不能作为函数的参数