首先,我知道-std = c ++ 11标志以启用c ++ 11支持以及放置它的位置。我已将-std=c++11
附加到Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous -> Other Flags
,并且编译工作正常。但是索引器并不相处,例如,如果我想使用emplace
的{{1}}函数(c ++ 11),它将找不到emplace函数。
std::map
我还查看了这些相关问题:
更新:现在我玩过它甚至不识别std :: map类型,虽然编译精细和eclipse找到所有标题...
答案 0 :(得分:6)
Eclipse Mars与以前的版本有点不同。
第一步得到指出错误的索引器错误 - 在上面链接的Enable C++11 in Eclipse CDT (Juno/Kepler/Luna) indexer中有所涉及。如果你已经完成了所有这些,如果我知道你遇到了什么,我会变成黑暗的。到目前为止火星有点不稳定。
顺便说一下,如果有人知道全局设置在哪里,我可以默认这种行为,请告诉我。
第2步让编译器正常工作
答案 1 :(得分:-1)
Eclipse CDT通过索引器运行它来理解窗口中的C ++代码。这个索引器只不过是使用某些编译选项调用GCC C ++编译器。有时,您可能希望更改此索引器使用的编译器选项。
例如,我最近发现C ++ 11容器和类(如未来)没有被索引器解析,并用红色波浪线加下划线。这是因为索引器使用的编译器选项没有-std = c ++ 11。
更改索引器的编译器选项: