[英]unique_ptr autocomplete in eclipse
“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)如果宏“__cplusplus”等于或大于“201103L”。 检查memory.h,自己在第69行查看“#if”预处理器条件(或搜索字符串“#if __cplusplus> = 201103L”)。
正如其他人所提到的,使用“-std = c ++ 0x”或更高版本的c ++标准(-std = c ++ 11或-std = c ++ 14)进行编译可以解决编译错误,但不能解决eclipse索引和自动完成问题。
为了解决eclipse索引问题,我将“__cplusplus”预处理器宏添加到项目构建属性中,值为“201103L”,之后我刷新了索引;
要添加预处理器宏:
“右键单击项目资源管理器上的项目”>>属性>> C / C ++一般>>预处理器包括>>条目>> GNU C ++ >> CDT用户设置条目>>添加... >>预处理器宏;
然后输入一个名为“__cplusplus”且值为“201103L”的宏;
之后,要刷新索引,请执行以下操作:
“在项目浏览器上右击项目”>>索引>>重建;
Ps。:我在ubuntu 15.04 64bits上使用gcc 4.9.2和eclipse Luna(4.4.2)
我想你应该在Eclipse中的“Paths and Symbols”中添加__GXX_EXPERIMENTAL_CXX0X__
定义。 另请参阅这个问题GNU C ++如何检查-std = c ++ 0x何时生效? 并且相同的问题Eclipse索引器无法解析shared_ptr的shared_ptr
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.