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 關鍵字不能夠用在
- 非靜態成員變量推導
- 數組
- 函數參數
- 模板參數