Dopo aver seguito la procedura descritta in this post sono riuscito a fare Eclipse (Indigo) riconoscere unique_ptr
(e altre C++ 11 novità). Il problema è che operator->
per unique_ptr
sembra non essere supportato in Eclipse. Qui si ha un esempio:operatore alla risoluzione del riferimento per unique_ptr non funziona in Eclipse
class Foo { void bar() { /* ... */ } };
std::unique_ptr<Foo> foo;
(*foo).bar(); // 1
foo->bar(); // 2
Caso 1
funziona come previsto: non v'è alcun errore e il completamento automatico opere. Per il caso 2
, tuttavia, Eclipse contrassegna l'istruzione con un errore ("la barra del metodo" non può essere risolta "), inoltre il completamento automatico da foo->
non funziona.
Più interessante, non ho alcun problema con std::shared_ptr
. Succede solo per std::unique_ptr
.
Qualcuno ha riscontrato lo stesso problema? Qualcuno sa un modo per risolverlo?
MODIFICA: solo per scopi di chiarificazione, il processo di compilazione va bene per il frammento di codice mostrato sopra. Quindi, il problema non è nel compilatore stesso, ma su Eclipse.
@dirk: la domanda riguarda il completamento automatico e la raccolta di lint statico nell'IDE; nessuna menzione di problemi di compilazione. – Rook
@dirkgently Sto usando g ++ 4.6, quindi la compilazione va bene. Il problema riguarda solo Eclipse. – betabandido
@Rock: giusto. Ho perso quel pezzettino. – dirkgently