按照this post中的步骤操作后,我设法让Eclipse(Indigo)识别unique_ptr
(和其他C ++ 11新东西)。问题是Eclipse中operator->
的{{1}}似乎不受支持。这里有一个例子:
unique_ptr
案例class Foo { void bar() { /* ... */ } };
std::unique_ptr<Foo> foo;
(*foo).bar(); // 1
foo->bar(); // 2
按预期工作:没有错误,自动完成工作正常。但是,对于大小写1
,Eclipse会在语句中标记错误(“方法'栏'无法解析'),加上2
的自动完成功能不起作用。
最有趣的是,我对foo->
没有任何问题。它只发生在std::shared_ptr
。
有没有人遇到过同样的问题?有谁知道解决它的方法?
编辑:仅为了明确目的,编译过程适用于上面显示的代码段。所以,问题不在于编译器本身,而是在Eclipse上。
答案 0 :(得分:0)
我终于在CDT中找到了bug report来描述我遇到的同样问题。到目前为止,还没有真正解决问题的方法,但在该错误报告中有一个解决方法:
是的,GCC 4.5是最新的GCC版本,其库标题可以准确 由CDT索引。无法索引4.6标头的主要原因是CDT缺乏 对'constexpr'和'nullptr'的支持,在4.6中广泛使用 标题(顺便说一句,Juno的实现机会是什么?)。
我通过安装GCC 4.5和4.6来解决这个问题 系统,并将CDT指向4.5的标头(通过设置编译器调用 在使用4.6进行实际编译时,在“发现选项”中命令“g ++ - 4.5”。
答案 1 :(得分:0)
最近修复了此问题,在cdt 8.1.1中。只需转到 help-&gt;检查更新,即可下载并安装。我已经测试了unique_ptr并且它被正确编入索引。