Estaba experimentando con algunas de las nuevas características de C++ 0x con G ++. Lambdas, auto
, y las otras características nuevas funcionaron como un amuleto, pero el bucle for-based basado en rango no compiló. Este es el programa que estaba probando:G ++ no compila C++ 0x basado en el rango para el ciclo
#include <iostream>
#include <vector>
int main()
{
std::vector<int> data = { 1, 2, 3, 4 };
for (int datum : data)
{
std::cout << datum << std::endl;
}
}
I compilado con:
g++ test.cpp -std=c++0x
También probé gnu++0x
, pero la salida fue el mismo.
Este fue el resultado:
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
Gracias de antemano por su ayuda.
EDITAR: Estoy usando GCC versión 4.5.2, que ahora veo es demasiado viejo.
¿Qué versión de gcc está usando? – pmr