Auto 关键字作用
在阅读了《深入应用C++11 代码优化与工程级应用》的第一张第一节之后,对auto
关键字的认识有所加深。
简单总结下:在编译期间完成静态类型推导。(不同于python的运行期类型推导)
Auto 关键字使用方式
Best Practise
- 用在复杂类型的推导
std::map<std::string, std::map<int, int>> complicated;
auto iter = complicated.begin();
- 用在未知类型获取
class FooA {
public:
int get() { return 0; }
};
class FooB {
public:
std::string get() { return "0"; }
};
template<class T> void func() {
auto object = new T();
auto val = object.get();
}
Auto 关键字不能够用在
- 非静态成员变量推导
- 数组
- 函数参数
- 模板参数
网友评论