unique_ptr的解除引用运算符在Eclipse中不起作用

时间:2012-06-22 09:58:48

标签: c++ eclipse c++11 eclipse-cdt unique-ptr

按照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上。

2 个答案:

答案 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并且它被正确编入索引。