auto:
自 C++ 11 开始,auto 关键字不再是 C++ 存储类说明符
auto 关键字用于两种情况:
1. 声明变量时根据初始化表达式自动推断该变量的类型
2. 声明函数时函数返回值的占位符。
register:
自 C++ 11 开始,register 关键字被弃用。
extern:
extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候
mutable:
1. 仅适用于类的成员变量和lambda表达式中。
2. mutabel是专门为突破const限制而设定,const修饰的成员函数无法修改成员变量(可查看),被mutabel修饰的成员变量可被const成员函数修改。
注意const修饰成员函数放在后面,形式如 int f() const;放在前面则表示函数返回值不可变。
thread_local :
1. 仅能修饰变量,不可修饰函数
2.每个独立的线程不共享这个变量,每次使用都初始化
3.生存周期为线程的生存周期
4.修饰局部变量时,生存周期同样为线程周期,不随函数结束而释放