Estoy tratando de actualizar mi compilador de C ++ a C ++ 11. He buscado un poco y he llegado a la conclusión de que tengo que usar la bandera -std=c++0x
o -std=gnu++0x
, pero no sé muchas cosas sobre las banderas. ¿Alguien puede ayudarme? (Estoy usando Ubuntu 12.04.)
Aquí está el error que obtengo del compilador cuando intento usar una biblioteca que está incluida en C ++ 11 (es decir, matriz):
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr = {2, 3, 5};
...
}
Este archivo requiere soporte de compilador y biblioteca para el próximo estándar ISO C ++, C ++ 0x. Este soporte es actualmente experimental y debe habilitarse con las opciones del compilador -std = c ++ 0x o -std = gnu ++ 0x.
g++-4.6
por defecto (que solo es compatible -std=c++0x
)
g++
, por ejemplo g++ -std=c++0x _filename_ && ./a.out
.
-std=c++11
en su lugar. Quizás ambos están permitidos, sin embargo.