C++需要了解auto的推导规则才能对auto进行正确的使用!!!
以下是对auto规则的一些总结:
1、auto声明多个变量从左向右推导,并且从右向左推导具有相同结果
2、auto声明优先拷贝,auto&&优先采用引用并且保留cv操作符限定符
(ps:int&&,char&&是右值引用)
3、auto&只能进行左值引用
4、 直接使用列表初始化,列表中必须为单元素x = {1}
用等号加列表初始化,列表中可以包含单个或者多个元素,auto类型被推导为 std::initializer_list<T>
5、auto能推断出int *等指针类型
注:auto*只能推断指针变量,否则失败
以下是一些应用
#include <iostream>
void f(auto j){ //函数是可以推断出auto类型的,编译成功
std::cout<<sizeof(j)<<'\n';
return ;
}
class Ba