¿Cómo habilitar C ++ 11 en Qt Creator?

El título es bastante autodescriptivo. Descargué Qt Creator 2.7.0 y estoy intentando comstackr algunos códigos básicos 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 admite C ++ 11. Entonces, ¿cómo lo habilito?

De acuerdo con este sitio, agregue

CONFIG += c++11

a su archivo .pro (ver en la parte inferior de esa página web). Requiere Qt 5.


Las otras respuestas, sugiriendo

QMAKE_CXXFLAGS += -std=c++11 (o QMAKE_CXXFLAGS += -std=c++0x )

también funciona con Qt 4.8 y gcc / clang.

Agregue esto a su archivo .pro

 QMAKE_CXXFLAGS += -std=c++11 

o

 CONFIG += c++11 

Como una alternativa para manejar ambos casos abordados en la excelente respuesta de Ali, generalmente agrego

 # With C++11 support greaterThan(QT_MAJOR_VERSION, 4){ CONFIG += c++11 } else { QMAKE_CXXFLAGS += -std=c++0x } 

a mis archivos de proyecto Esto puede ser útil cuando en realidad no le importa mucho qué versión de Qt usa la gente de su equipo, pero desea que tenga C ++ 11 habilitado en cualquier caso.

agregar a su archivo qmake

 QMAKE_CXXFLAGS+= -std=c++11 QMAKE_LFLAGS += -std=c++11 

Si está utilizando una versión anterior de QT (<5) intente esto

 QMAKE_CXXFLAGS += -std=c++0x 

El único lugar donde he logrado que funcione correctamente es buscando en … \ Qt \ {5.9; o su versión} \ mingw {53_32; o su versión} \ mkspecs \ win32-g ++ \ qmake.conf:

Luego en la línea: QMAKE_CFLAGS + = -fno-keep-inline-dllexport

Editar: QMAKE_CFLAGS + = -fno-keep-inline-dllexport -std = c ++ 11

¡Los efectos son inmediatos! 🙂