Próbuję zaktualizować mój kompilator C ++ do C ++ 11. Trochę przeszukałem i doszedłem do wniosku, że muszę użyć flagi -std=c++0x
lub -std=gnu++0x
, ale niewiele wiem o flagach. Czy ktoś może mi pomóc? (Używam Ubuntu 12.04.)
Oto błąd, który otrzymuję z kompilatora, gdy próbuję użyć biblioteki zawartej w C ++ 11 (tj. Tablicy):
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr = {2, 3, 5};
...
}
Ten plik wymaga obsługi kompilatora i biblioteki dla nadchodzącego standardu ISO C ++, C ++ 0x. Ta obsługa jest obecnie w fazie eksperymentalnej i musi być włączona z opcjami kompilatora -std = c ++ 0x lub -std = gnu ++ 0x.
g++-4.6
domyślnie także Ubuntu 12.04 jest dostarczane (które obsługuje tylko -std=c++0x
)
g++
, np g++ -std=c++0x _filename_ && ./a.out
.
-std=c++11
zamiast tego. Może jednak oba są dozwolone.