El título es bastante descriptivo. He descargado Qt Creator 2.7.0, y estoy tratando de compilar un código básico de C ++ 11:
int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
x *= 2;
}
Recibo el siguiente error:
range based for loops are not allowed in c++ 98 mode
Sin embargo, según este artículo, esta versión de Qt Creator es compatible con C ++ 11. Entonces, ¿cómo lo habilito?
Respuestas:
Según este sitio agregue
CONFIG += c++11
a su archivo .pro (vea al final de esa página web). Requiere Qt 5.
Las otras respuestas, sugiriendo
QMAKE_CXXFLAGS += -std=c++11
(oQMAKE_CXXFLAGS += -std=c++0x
)También funciona con Qt 4.8 y gcc / clang.
fuente
-std=c++11
, también debería ser compatible con el-std=c++0x
indicador (en desuso) , y se supone que ambos indicadores tienen efectos idénticos (que aparentemente no es el caso en su máquina). Si un compilador es compatible-std=c++0x
, no significa que lo comprenda-std=c++11
. Por lo tanto, elegir de-std=c++0x
forma predeterminada el modo de compatibilidad de C ++ 11 es una opción razonable. En mi máquina, al menos según la página de manual ,-std=c++0x
y-std=c++11
son idénticos.-std=c++11
si el compilador lo admite, y Qt podría ser lo suficientemente inteligente como para hacerlo. Bueno, si este problema te duele tanto, podrías presentar un informe de error ...Agregue esto a su archivo .pro
o
fuente
Como alternativa para manejar ambos casos abordados en la excelente respuesta de Ali, generalmente agrego
a mis archivos de proyecto. Esto puede ser útil cuando realmente no le importa mucho qué versión de Qt usan las personas en su equipo, pero desea que tengan habilitado C ++ 11 en cualquier caso.
fuente
agregar a su archivo qmake
fuente
Si está utilizando una versión anterior de QT (<5) intente esto
fuente
El único lugar donde lo hice funcionar con éxito es buscando en:
Luego en la línea:
Editar:
fuente