Используйте лямбду, например
// C++0x only.
std::for_each(theContainer.begin(), theContainer.end(), [](someType x) {
// do stuff with x.
});
Цикл для диапазона поддерживается GCC с 4.6.
// C++0x only
for (auto x : theContainer) {
// do stuff with x.
}
Синтаксис "для каждого" цикла является расширением MSVC. Это не доступно в других компиляторах.
// MSVC only
for each (auto x in theContainer) {
// do stuff with x.
}
Но вы можете просто использовать Boost.Foreach . Он переносим и доступен без C ++ 0x.
// Requires Boost
BOOST_FOREACH(someType x, theContainer) {
// do stuff with x.
}
См. Как проверить текущую версию GCC? о том, как получить версию GCC.