После выполнения шагов в this post Мне удалось заставить Eclipse (Indigo) распознать unique_ptr
(и другие новые материалы C++ 11). Проблема в том, что operator->
для unique_ptr
, похоже, не поддерживается в Eclipse. Вот вам пример:Оператор разыменования для unique_ptr не работает в Eclipse
class Foo { void bar() { /* ... */ } };
std::unique_ptr<Foo> foo;
(*foo).bar(); // 1
foo->bar(); // 2
Case 1
работает, как ожидалось: нет ошибок и автозавершения работы. Однако для случая 2
Eclipse отмечает инструкцию с ошибкой («Панель« Метод »не может быть разрешена»), плюс автозаполнение от foo->
не работает.
Самое интересное, что у меня нет проблем с std::shared_ptr
. Это происходит только для std::unique_ptr
.
У кого-то была такая же проблема? Кто-нибудь знает, как это исправить?
EDIT: только для уточнения целей, процесс компиляции подходит для фрагмента кода, показанного выше. Итак, проблема не в самом компиляторе, а на Eclipse.
@ dirk: речь идет о автозаполнении и статическом выборе в IDE; нет упоминания о проблемах компиляции. – Rook
@dirkgently Я использую g ++ 4.6, поэтому компиляция идет хорошо. Проблема затрагивает только Eclipse. – betabandido
@ Rock: Правильно. Я пропустил этот бит. – dirkgently