0

So far I have tried these tricks: (from other SO questions)

  1. 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)

  2. 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.

  3. answer to this question

Other noticeable things:

  1. When I open C++11 header like <memory> it is visible that __cplusplus macro shadows the text below it, including <backward/auto_ptr.h> instead of all C++11 stuff; hovering mouse over macro shows that __cplusplus expands to 199711L

  2. parser has no problems with this lines:

int* p = nullptr;

virtual void InheritedFunction() override;

  1. It seems that parser understands correctly C++11 features (lambdas work) but somehow things like std::shared_ptr are blocked by not-including appropriate headers because __cplusplus macro expands wrong

  2. Eclipse can't resolve my external libraries #includes. All paths are correct, they are the same as before reinstalling Eclipse

  3. \/

"The settings are not used by indexer" - but why? Also I don't have anything like "MBS" on the providers tab

Community
  • 1
  • 1
Xeverous
  • 973
  • 1
  • 12
  • 25

1 Answers1

0

Solved by changing so many things in settings that I don't remember for sure what was the actual cause.

Probably this: Window -> Preferences -> C/C++ -> Indexer -> Build configuration for the indexer

I changed from "Use build configuration specified in the project's indexer settings" to "Use active build configuration"

Somehow the "The settings are not used by indexer" has disappeared and I can freely edit __cplusplus value now

Also, my unresolved external libraries are now found

Xeverous
  • 973
  • 1
  • 12
  • 25