Search code examples
c++eclipsec++11eclipse-cdt

How to enable C++11/C++0x support in Eclipse CDT?


Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2

This is an example of a piece of C++11 code:

auto text = std::unique_ptr<char[]>(new char[len]);

The Eclipse editor complains about:

Function 'unique_ptr' could not be resolved

The Makefile compilation works fine. How to make Eclipse stop complaining about these sort of errors?


Solution

  • I found this article in the Eclipse forum, just followed those steps and it works for me. I am using Eclipse Indigo 20110615-0604 on Windows with a Cygwin setup.

    • Make a new C++ project
    • Default options for everything
    • Once created, right-click the project and go to "Properties"
    • C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous -> Other Flags. Put -std=c++0x (or for newer compiler version -std=c++11 at the end . ... instead of GCC C++ Compiler I have also Cygwin compiler
    • C/C++ General -> Paths and Symbols -> Symbols -> GNU C++. Click "Add..." and paste __GXX_EXPERIMENTAL_CXX0X__ (ensure to append and prepend two underscores) into "Name" and leave "Value" blank.
    • Hit Apply, do whatever it asks you to do, then hit OK.

    There is a description of this in the Eclipse FAQ now as well: Eclipse FAQ/C++11 Features.

    Eclipse setting

    Eclipse image setting