2017-11-02 2 views
3

Ich versuche zu verstehen, wie Teile einer großen Open-Source-Bibliothek arbeiten, und ich bin nicht in der Lage, die Definition eines überladenen Betreibers zu finden. Die Verwendung von Go To Definition auf dem Operator bringt mich nur zum typedef am Anfang der Datei.Wie finde ich die Definition eines überladenen Operators?

Gibt es eine Möglichkeit zu finden, welcher Code tatsächlich für einen überladenen Operator in VS oder einem anderen Tool verwendet wird, oder bin ich gerade dabei, die Klassenhierarchie zu durchsuchen?

+0

VS IntelliSense benötigt möglicherweise etwas Zeit, um einen Index der Quelldateien zu erstellen. Aber es klingt, als würdest du eher nach einem Typ als nach einem Operator suchen. –

Antwort

0

Wenn dieser Operator überlastet ist, hebt VS ihn mit einer anderen Farbe hervor. Sie müssen genau auf den Operatorkörper klicken und dann Go To Definition auswählen. Oder setzen Sie den Cursor auf den Namen des Bedieners (z. B. kurz vor +) und drücken Sie F12. Wenn der Operator integriert ist (z. B. int + int), wird beim Springen zur Definition das Popup-Fenster "Operator nicht überladen" angezeigt. Beachten Sie, dass das angegebene Verhalten für VS 2017 gültig ist. In früheren Versionen von VS war die Unterstützung für überlastete Operatoren weitaus begrenzter.

+0

Ich benutze VS Community 2017. Den Cursor direkt vor den Operator zu setzen (* in diesem Fall) und F12 zu drücken, bringt mich immer noch zum 'typedef'. Die linken und rechten Seiten sind verschiedene Klassen, die von derselben Basisklasse erben. In der Bibliothek werden Template-Klassen häufig verwendet. Könnte das die Aufgabe sein? –

+0

@MalikDrako Wenn der Operator ein Teil des Vorlagenkörpers ist, ist die Ableitung des tatsächlichen Operatorenstandorts nicht sehr realistisch. Wenn sich der Bediener jedoch innerhalb der normalen Funktion befindet, sollte er sich befinden. – VTT

Verwandte Themen