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

Asked by moawiya mograbi

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

English Edit question
Ubuntu eclipse Edit question
No assignee Edit question
Solved by:
Warren Hill
Last query:
Last reply:
Revision history for this message
Best Warren Hill (warren-hill) said :

Are you sure

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

    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
    Support all ISO C90 programs (certain GNU extensions that conflict with ISO C90 are disabled). Same as -ansi for C code.
    ISO C90 as modified in amendment 1.

    ISO C99. Note that this standard is not yet fully supported; see <> for more information. The names c9x and iso9899:199x are deprecated.
    GNU dialect of ISO C90 (including some C99 features). This is the default for C code.
    GNU dialect of ISO C99. When ISO C99 is fully implemented in GCC , this will become the default. The name gnu9x is deprecated.
    The 1998 ISO C ++ standard plus amendments. Same as -ansi for C ++ code.
    GNU dialect of -std=c++98. This is the default for C ++ code.
    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 dialect of -std=c++0x. This option enables experimental features that may be removed in future versions of GCC .
see for more info

Revision history for this message
moawiya mograbi (mograbi-moawiya) said :

Thanks Warren Hill, that solved my question.