Я пытаюсь обновить мой компилятор C ++ до C ++ 11. Я немного искал и пришел к выводу, что мне нужно использовать флаг -std=c++0x
или -std=gnu++0x
, но я мало что знаю о флагах. Может кто-нибудь мне помочь? (Я использую Ubuntu 12.04.)
Вот ошибка, которую я получаю от компилятора, когда я пытаюсь использовать библиотеку, которая включена в C ++ 11 (то есть массив):
#include <array>
#include <iostream>
int main()
{
std::array<int, 3> arr = {2, 3, 5};
...
}
Этот файл требует поддержки компилятора и библиотеки для следующего стандарта ISO C ++, C ++ 0x. Эта поддержка в настоящее время является экспериментальной и должна быть включена с помощью параметров компилятора -std = c ++ 0x или -std = gnu ++ 0x.
g++-4.6
по умолчанию (который поддерживает только -std=c++0x
)
g++
, например g++ -std=c++0x _filename_ && ./a.out
.
-std=c++11
вместо этого. Может быть, и то и другое разрешено.