Auto 關(guān)鍵字作用
在閱讀了《深入應(yīng)用C++11 代碼優(yōu)化與工程級(jí)應(yīng)用》的第一張第一節(jié)之后啤覆,對(duì)auto
關(guān)鍵字的認(rèn)識(shí)有所加深址愿。
簡(jiǎn)單總結(jié)下:在編譯期間完成靜態(tài)類型推導(dǎo)或舞。(不同于python的運(yùn)行期類型推導(dǎo))
Auto 關(guān)鍵字使用方式
Best Practise
- 用在復(fù)雜類型的推導(dǎo)
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 關(guān)鍵字不能夠用在
- 非靜態(tài)成員變量推導(dǎo)
- 數(shù)組
- 函數(shù)參數(shù)
- 模板參數(shù)