Compiling C++11 with g++

c++, c++11, flags, g++

Solution

Flags (or compiler options) are nothing but ordinary command line arguments passed to the compiler executable.

Assuming you are invoking g++ from the command line (terminal):

`$ g++ -std=c++11 your_file.cpp -o your_program`

or

`$ g++ -std=c++0x your_file.cpp -o your_program`

if the above doesn't work.

Problem

I'm trying to update my C++ compiler to C++11. I have searched a bit and I have come to the conclusion that I have to use the flag `-std=c++0x` or `-std=gnu++0x`, but I don't know many things about flags. Can anyone help me? (I'm using Ubuntu 12.04.) Here is the error that I get from the compiler when I attempt to use a library which is included in C++11 (i.e. array): ``` #include <array> #include <iostream> int main() { std::array<int, 3> arr = {2, 3, 5}; ... } ``` This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options.

Original source