Я экспериментировал с некоторыми новыми функциями C ++ 0x с G ++. Lambdas, auto
и другие новые функции работали как чудо, но цикл for на основе диапазона не скомпилировался. Это программа, которую я тестировал:
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> data = { 1, 2, 3, 4 };
for ( int datum : data )
{
std::cout << datum << std::endl;
}
}
Я скомпилировал это с:
g++ test.cpp -std=c++0x
Я тоже пробовал gnu++0x
, но вывод был тот же.
Это был вывод:
test.cpp: In function ‘int main()’:
test.cpp:8:21: error: expected initializer before ‘:’ token
test.cpp:12:1: error: expected primary-expression before ‘}’ token
test.cpp:12:1: error: expected ‘;’ before ‘}’ token
test.cpp:12:1: error: expected primary-expression before ‘}’ token
test.cpp:12:1: error: expected ‘)’ before ‘}’ token
test.cpp:12:1: error: expected primary-expression before ‘}’ token
test.cpp:12:1: error: expected ‘;’ before ‘}’ token
Заранее спасибо за помощь.
РЕДАКТИРОВАТЬ: я использую GCC версии 4.5.2, который я теперь вижу, слишком стар.