programacion - Error: los bucles "for" basados en rangos no están permitidos en el modo C++ 98
manual de programacion android pdf (5)
Pass -std=c++11
bandera al compilador. Ciertamente, GCC debería ser lo suficientemente reciente (> = 4.7) para respaldar todos estos estándares modernos. Para CodeBlocks 13.12: Configuración -> Compilador -> Pestaña "Indicadores del compilador" -> Opción "Haga que g ++ siga el C ++ 11 ISO C ++ [-std = c ++ 11]"
Así que estoy siguiendo los tutoriales en esta página: http://www.cplusplus.com/doc/tutorial/control/ Pero estoy teniendo problemas para hacer un bucle range / based for. Encontré esta página: actualización del compilador GNU GCC. La respuesta dice que debería abrir "Proyecto" y "Propiedades". Pero cuando intento eso, la opción "Propiedades" aparece en gris sin ninguna explicación: http://imageshack.com/a/img571/4371/xd1x.png Entonces ... ¿cómo puedo activar el rango / basado para bucles?
La solución dada anteriormente de usar -std=c++11
no funcionó para mí.
Este es el objetivo y el detalle de la versión de mi compilador.
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) Target: x86_64-linux-gnu
Cuando lo intenté, esto es lo que sucedió.
$ g++ -std=c++11 program.cpp cc1plus: error: unrecognized command line option ''-std=c++11''
Esto resolvió mi problema.
$ g++ -std=c++0x program.cpp
Usando la solución anterior g++ -std=c++0x program.cpp
funciona. Sin embargo, el comando necesita modificarse ligeramente para ejecutar el programa con el comando común: ./program
g++ -std=c++0x -o program program.cpp
y todo funcionó perfectamente.
Ambos:
g++ -std=c++11 -o test_executable test_source.cpp
g++ -std=c++0x -o program program.cpp
trabajó para mi.
Lo único que hay que hacer después de compilar es ejecutar el test_executable
(en el primer caso) como ./test_executables
o el programa (en el segundo caso) como ./program
.
Si está utilizando QT5.5
, puede lograrlo agregando las siguientes líneas en su archivo .pro
.
CONFIG += c++11