GNU编译器4.6.0版本。C++0x的foreach有着和Java类似的语法。在这里,它用来代替int。而能够像第7行这样初始化一个vector<int>,也是得益于C++0x引入的一个新特性std::initializer_list。end和iterator。*__begin;statement}}上面的&&又是C++0x的一个新feature——Rvalue-reference(右值引用)。range-init就是前面的expression或braced-init-list。0;}如果_RangeT是一个类,并有begin和end方法,那么begin-expr和end-expr分别是__range.begin()和__range.end()。否则,begin-expr和end-expr分别是begin(__range)和end(__range)。