C++0x - auto

型推論によってコンパイル時に決定される型


今までこう書いていたのが

vector<int> v;

vector<int>::iterator it = v.begin();


こう書けるようになる

vector<int> v;

auto it = v.begin();

「vector::begin()がvector::iteratorを返す」なんてことは
コンパイラは知っているので、めんどーなことはコンパイラにまかせちゃおうというものです


ちなみに、autoにたいして*, &, const/volatileで修飾することもできます

int a = 3;
auto*       p = &a; // int*       p = &a;
auto&       r = a;  // int&       r = a;
const auto& c = a;  // const int& c = a;

C++0x言語拡張まとめ