Eclipse CDT Indizierung und std :: unique_ptr

8

Ich verwende std :: unique_ptr in diesem Code, der kompiliert und ausgeführt wird, wie ich es erwartet habe.

%Vor%

Ich erhalte jedoch Fehlermeldungen von Eclipse CDT. In der vierten Zeile: Methode 'Einfügen' konnte nicht aufgelöst werden, Methode 'Ende' konnte nicht aufgelöst werden.

Früher habe ich auch Fehler beim Aussehen des Namens std :: unique_ptr bekommen. Dies wurde gelöst, indem das Vorprozessorsymbol% ​​co_de% gesetzt und der Index neu aufgebaut wurde, wie in der Antwort zu diese Frage.

Gibt es eine Möglichkeit, CDT zu verstehen, dass s vom Typ std :: string * ist und dass es in std :: string für s- & gt; insert () und s- & gt; end () aussehen sollte?

PS: Ich benutze Eclipse 3.7.1 und CDT 8.0.0.201106081058

PS2: Ich hätte das gerne als Kommentar in der obigen Frage gepostet, aber ich kann nicht, vermutlich weil ich ein neuer Benutzer bin

    
engineerX 17.01.2012, 03:17
quelle

3 Antworten

4

Es scheint, als ob der Eclipse-CDT-Indexer nicht in der Lage ist, den Zeigertyp unique_ptr :: abzuleiten, der auch als Rückgabetyp von operator- & gt; () verwendet wird. Sie können dies sehen, wenn Sie etwas wie

eingeben %Vor%

Ein Fehler wird "erkannt", dass es keine Überladung geben würde und dass der einzige Kandidat reset(?) wäre. Das ist offensichtlich ein Fehler.

    
denisw 21.03.2012, 20:27
quelle
2

Dieses Problem wurde kürzlich in cdt 8.1.1 behoben. Einfach help- & gt; nach Updates suchen und es wird heruntergeladen und installiert. Ich habe unique_ptr getestet und es ist richtig indiziert.

    
Felipe 01.10.2012 12:42
quelle
1

Ich habe das gleiche Problem in der neueren Version von Eclipse CDT (9.3). Ich habe alle Tricks ausprobiert, die ich im Internet gefunden habe. Aber der Indexer konnte nie den Typ von std::unique_ptr<T>::operator->() ableiten. Schließlich entschied ich mich für eine sehr einfache Problemumgehung:

%Vor%

Ich füge ECLIPSE_INDEXER_WORKAROUND zu Präprozessorsymbolen hinzu (natürlich nur zum Indizieren von Optionen, nicht zum Erstellen) in Eclipse, und die Indexierung ist wieder nützlich!

Um den Code weniger zu verschmutzen, können wir ein Makro verwenden:

%Vor%     
Thomas Delame 24.08.2017 11:25
quelle

Tags und Links