型推論 auto
C++11 から型推論のための auto キーワードが導入された。
autoを使うと具体的な型を書かずにコンパイラに型の決定を任せる事ができます。
autoを使うと具体的な型を書かずにコンパイラで変数の型を初期化子から推論することができます。
auto.cpp
int main(void){
auto hoge = 2; // 整数型
printf("%d",hoge);
auto hoge2 = "Hello!"; // 文字列型
printf("%s",hoge2);
}
auto を使った方が良いのは
右辺の式から型がはっきりわかる
具体的な型があまり重要ではない
ラムダ式を受け取る
auto を使うべきでないのは
その場所でその型になっていることを保証する
親クラスの参照として受け取る
その変数を後でオーバーロードされた関数に渡す
auto の落とし穴
「値型」「ポインタ」「参照」の関係が入り乱れている時