Deaktivieren g++ "Hinweis: die Kandidaten.." compiler-Meldung

Viele Male, wenn ich zum Beispiel etwas mit einem Tippfehler oder eine andere Eingabe nicht übereinstimmen, ich bekomme die standard-Fehlermeldung "Fehler: no match for 'functionname' in ... " - Fehler. Das ist großartig. Dann, vor allem im Fall von überladen von Funktionen und Operatoren, g++ geht auf und Liste wie 10 Seiten von Kandidaten, die sind einfach nur scheusslich und massive template-Definitionen.

Die Fehlermeldung ist toll, aber gibt es eine Möglichkeit zum deaktivieren von darauf hindeutet, sonstige Funktionen Varianten?

  • Warten Sie, wollen Sie die Fehlermeldung an, die weniger Informationen?
  • Die Funktion Definitionen schlägt er versteckt hinter 10 Schichten templating (vor allem mit boost) und machen es sehr viel schwieriger zu finden, wo der compiler tatsächlich identifiziert die Zeile mit dem Fehler. Ich will es mir nicht sagen, wo der Fehler war und was falsch war, aber ich weiß nicht wirklich brauchen, es zu schlagen, wie es zu beheben.
  • Rohr es durch grep, nur Spiel auf Linien, die 'Fehler:' in Ihnen? FWIW meine Entwicklungsumgebung hat 'Sprung in die Zeile mit dem Fehler' als eine Funktion, die als zusätzlichen bonus lässt die Spitze der Liste der Kandidaten zeigt auf dem Bildschirm.
  • verwenden Sie klammerten. Es ist viel schöner Fehlermeldungen.
  • clang++ wird nicht helfen, hier bietet es -fshow-candidates=<value> aber das argument kann nur best oder all zB nicht none
  • Hilfreich können Informationen weniger hilfreich als keine Informationen, vor allem, wenn Sie brauchen, um einen Bildlauf durch Seiten von sich wiederholenden text, nur um zu versuchen, um herauszufinden, was der tatsächliche Fehler ist.
  • Wenn Sie möchten, um zu sehen, eine besonders tückische Instanz dieser, versuchen boost::variant<bool, int> value; std::ifstream input("filename.txt"); input >> value; Produziert über 50k der output des GCC 5.3.1.

InformationsquelleAutor sshannin | 2012-07-03
Schreibe einen Kommentar