C++ eclipse中的唯一自动完成

C++ eclipse中的唯一自动完成,c++,linux,eclipse,stl,unique-ptr,C++,Linux,Eclipse,Stl,Unique Ptr,我正在玩独特的ptr。在本例中,我的人员通过在编译期间指定-std=c++0x来帮助我编译一个使用此指针的程序。 现在我想知道是否有任何方法来指示Eclipse在自动完成时考虑C++ 11? unique_ptr不在std::namespace的列表中,我也找不到与unique_ptr关联的方法(reset、move…) 多谢各位 vahid我想您应该在Eclipse中的“路径和符号”定义中添加\uuuugxx\ucx0x\uuuuuxx定义。如果宏为“\ucplu usplus”,则“memo

我正在玩独特的ptr。在本例中,我的人员通过在编译期间指定-std=c++0x来帮助我编译一个使用此指针的程序。 现在我想知道是否有任何方法来指示Eclipse在自动完成时考虑C++ 11? unique_ptr不在std::namespace的列表中,我也找不到与unique_ptr关联的方法(reset、move…)

多谢各位
vahid

我想您应该在Eclipse中的“路径和符号”定义中添加
\uuuugxx\ucx0x\uuuuuxx
定义。如果宏为“\ucplu usplus”,则“memory”标题(可能位于/usr/include/c++/4.9/memory)仅包括“unique_ptr.h”和“shared_ptr.h”(可能位于/usr/include/c++/4.9/bits/unique_ptr.h和/usr/include/c++/4.9/bits/shared_ptr.h)中等于或大于“201103L”。检查memory.h以查看第69行的“#if”预处理器条件(或搜索字符串“#if#cplusplus>=201103L”)

如其他所述,用“-STD= C++ 0x”或以后的C++标准(-STD= C++ 11或-STD= C++ 14)编译解决编译错误,但不解决Eclipse索引和自动完成问题。

为了解决eclipse索引问题,我在项目构建属性中添加了“\uuucplusplus”预处理器宏,值为“201103L”,之后我刷新了索引

要添加预处理器宏,请执行以下操作:

<右击项目浏览器中的项目> >属性> C/C++ +一般>预处理器包括>条目> GNUC++ > CDT用户设置条目>添加…>预处理器宏

然后输入一个名为“uu cplusplus”且值为“201103L”的宏

然后,要刷新索引,请执行以下操作:

“右键单击项目浏览器上的项目”>>索引>>重建


注:我在ubuntu 15.04 64位上使用了gcc 4.9.2和eclipse Luna(4.4.2)

我知道有人知道所有30个步骤都是正确的,但我会切换到kdevelop并启用自动完成功能;)最后一条评论中的建议有帮助吗?我不使用Eclipse,所以我不能尝试它。@Als不,它不工作,但是tanx。FI,我打开了ProjkProjks:C+C++ Buff->发现选项-> GCC C++编译器:在编译器调用参数中,我添加了STD= C++ +0x,但没有任何作用。至少现在不行。@AlokSave提供的解决方案对我有效!做不到。有没有可能有更有经验的人尝试过这个方法?@rahman,查找
共享的\u ptr
,OP报告说它起作用了。我在Eclipse Juno上,设置这个符号确实有助于识别std::unique\u ptr,而索引器会用带有“无效参数”的唯一的\u ptr标记std::move的任何使用错误。@Hans:朱诺有一种新方法。您应该在发现选项中添加
-std=c++0x
。有关详细说明,请参见以下链接:,无骰子,将标志添加到发现选项或源导航都不会阻止可编译代码被标记为存在错误。