eclipse c++ problem when using "-std=c++11" flag

Asked by moawiya mograbi on 2013-01-10

I installed eclipse with eclipse-cdt from synaptic
and when I add -std=c++11 to the flags of c++ project I get this error :

cc1plus: error: unrecognized command line option ‘-std=c++11’

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu eclipse Edit question
Assignee:
No assignee Edit question
Solved by:
Warren Hill
Solved:
2013-01-11
Last query:
2013-01-11
Last reply:
2013-01-11
Best Warren Hill (warren-hill) said : #1

Are you sure

-std=c++11
is a valid flag? 'std=c++' is I may be wrong but I thought the only options for std= were

-std=
    Determine the language standard. This option is currently only supported when compiling C or C ++ .

    The compiler can accept several base standards, such as c89 or c++98, and GNU dialects of those standards, such as gnu89 or gnu++98. By specifying a base standard, the compiler will accept all programs following that standard and those using GNU extensions that do not contradict it. For example, -std=c89 turns off certain features of GCC that are incompatible with ISO C90, such as the "asm" and "typeof" keywords, but not other GNU extensions that do not have a meaning in ISO C90, such as omitting the middle term of a "?:" expression. On the other hand, by specifying a GNU dialect of a standard, all features the compiler support are enabled, even when those features change the meaning of the base standard and some strict-conforming programs may be rejected. The particular standard is used by -pedantic to identify which features are GNU extensions given that version of the standard. For example -std=gnu89 -pedantic would warn about C ++ style // comments, while -std=gnu99 -pedantic would not.

    A value for this option must be provided; possible values are
    c89
    iso9899:1990
    Support all ISO C90 programs (certain GNU extensions that conflict with ISO C90 are disabled). Same as -ansi for C code.
    iso9899:199409
    ISO C90 as modified in amendment 1.
    c99

    c9x
    iso9899:1999
    iso9899:199x
    ISO C99. Note that this standard is not yet fully supported; see <http://gcc.gnu.org/gcc-4.4/c99status.html> for more information. The names c9x and iso9899:199x are deprecated.
    gnu89
    GNU dialect of ISO C90 (including some C99 features). This is the default for C code.
    gnu99
    gnu9x
    GNU dialect of ISO C99. When ISO C99 is fully implemented in GCC , this will become the default. The name gnu9x is deprecated.
    c++98
    The 1998 ISO C ++ standard plus amendments. Same as -ansi for C ++ code.
    gnu++98
    GNU dialect of -std=c++98. This is the default for C ++ code.
    c++0x
    The working draft of the upcoming ISO C ++ 0x standard. This option enables experimental features that are likely to be included in C ++ 0x. The working draft is constantly changing, and any feature that is enabled by this flag may be removed from future versions of GCC if it is not part of the C ++ 0x standard.
    gnu++0x
    GNU dialect of -std=c++0x. This option enables experimental features that may be removed in future versions of GCC .
---------------
see http://linux.die.net/man/1/gcc for more info

Thanks Warren Hill, that solved my question.