C++0x - Range-base for文

コンテナや配列をループするための新たなfor文が追加されます。

いわゆるforeach文です。


今まで

vector<int> v;
for (vector<int>::iterator it = v.begin(), last = v.end(); it !=last; ++it) {
    cout << *it << endl;
}


これから

vector<int> v;
for (int value : v) {
    cout << value << endl;
}

参照可

vector<int> v;
for (int& value : v) {
    ++value;
}


現在のC++でも、VC++8.0(VS2005)のfor eachや
Boost C++ LibrariesのBOOST_FOREACHで同じように簡潔に書ける



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