eclipse中的unique_ptr自动完成

unique_ptr autocomplete in eclipse

本文关键字:ptr 中的 unique eclipse      更新时间:2023-10-16

我正在玩unique_ptr。在我的上一篇文章中,人们通过在编译过程中指定-std=c++0x,帮助我编译了一个使用此指针的程序。现在我想知道是否有任何方法可以指示eclipse在自动完成时考虑c++11
unique_ptr不在std::namespace的列表中,我也找不到与unique_pr关联的方法(reset、move…)。

谢谢vahid

如果宏"__cplusplus"等于或大于"201103L",则"memory"标头(可能在/usr/include/c++/4.9/bits/unique_ptr.h和/usr/include/c++/4.9/bits/shared_ptr.h中找到)仅包括"unique_ptr.sh"answers"shared_ptr.h"。检查memory.h,在第69行查看"#if"预处理器条件(或搜索字符串"#if__cplusplus>=201103L")。

正如其他人所提到的,使用"-std=c++0x"或更高版本的c++标准(-std=c++11或-std=c+/14)进行编译可以解决编译错误,但不能解决eclipse索引和自动完成问题。

为了解决eclipse索引问题,我在项目构建属性中添加了值为"201103L"的"__cplusplus"预处理器宏,然后刷新了索引;

添加预处理器宏:

"右键单击项目资源管理器">>属性>>C/C++常规>>预处理器包含>>条目>>GNU C++>>CDT用户设置条目>>添加…>>预处理器宏;

然后输入一个名为"__cplusplus"、值为"201103L"的宏;

之后,要刷新索引,请执行:

"右键单击项目资源管理器上的项目">>索引>>重建;

Ps.:我使用的是gcc 4.9.2和eclipse Luna(4.4.2),在ubuntu 15.04 64位上

我想您应该将__GXX_EXPERIMENTAL_CXX0X__定义添加到Eclipse中的"路径和符号"中。另请参阅这个问题GNU C++如何检查-std=C++0x何时生效?同样的问题Eclipse索引器可以';t解析shared_ptr的shared_ptr。