Ответ 1
Ну, по крайней мере GCC поддерживает его в версии 4.6 (функция называется "Range-based for" ). Если у вас уже установлена последняя версия, не забудьте добавить опцию -std=c++0x
.
Я видел этот фрагмент кода С++ 11 в эту презентацию BoostCon Джереми Сика:
deque<int> topo_order;
topological_sort(g, front_inserter(topo_order));
for (int v : topo_order){ //line 39
cout << tasks[v] << endl;
}
При попытке компиляции в gcc возникает следующая ошибка:
main.cpp:39: error: expected initializer before ‘:’ token
после чего мне стало интересно, какие компиляторы действительно поддерживают этот синтаксис?
Ну, по крайней мере GCC поддерживает его в версии 4.6 (функция называется "Range-based for" ). Если у вас уже установлена последняя версия, не забудьте добавить опцию -std=c++0x
.
В дополнение к версиям gcc позже версии 4.6, как Clang 3.0, так и Visual С++ 11 (как и в Visual С++ 11 Beta) поддерживают эту языковую языковую среду С++ 11.