Помощь - Поиск - Пользователи - Календарь
Полная версия: Range-based for-loops
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Игорь
В C++ Annotations есть условный пример такого цикла, я написал свой вариант, но ни один из компиляторов его не принял. В чём дело?


#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
int array[5] = {1, 5, 7, 12, 4};

for (int elem: array)
cout << elem << ' ';

cout << '\n';
}



Вот что я делал:

[clang++ prog.cc -o prog] : ругается, что пропущена ';'

[g++ prog.cc -o prog] : видит цикл, но говорит, что используется не тот стандарт (С++98), однако опцию -std=c++11 не распознаёт.

Все компиляторы, вроде должны поддерживать range-based циклы.

P.S.: Как вы считаете C++ Annotations это вообще верный выбор для изучения C++ или стоит найти что-то ещё?
IUnknown
Цитата
Все компиляторы, вроде должны поддерживать range-based циклы.
Далеко не все. GCC, скажем, поддерживает их только начиная с 4.6, в 4.5 их близко нет... Попробуй -std=c++0x, если у тебя 4.6

А вообще - вот таблицы, показывающие, какие из новых плюшек в какой версии GCC реализованы: C++0x/C++11 Support in GCC
Игорь
Ой, а я не обратил внимания, что только в gcc 4.7 станет доступна опция -std=c++11.
С -std=c++0x всё отлично компилируется.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.