Frage

Ich bin wirklich beginnen zu verstehen, was Leute meinen, wenn Sie sagen, dass C++'s Fehlermeldungen sind ziemlich schrecklich in Bezug auf Vorlagen.Ich habe gesehen, horrend lange Fehler für so einfache Dinge wie eine Funktion nicht passend zu seinem Prototyp.

Gibt es irgendwelche tricks zu entziffern diese Fehler?

EDIT:Ich bin mit sowohl gcc und MSVC.Sie beide scheinen ziemlich schrecklich.

War es hilfreich?

Lösung

Sie können versuchen, das folgende tool, um Dinge besser zu sane:

http://www.bdsoft.com/tools/stlfilt.html

Andere Tipps

Ich sicher wie die Hölle nicht.Kleine Fehler explodieren in Seiten und Seiten nicht lesbar junk.Gewöhnlich früh am morgen, noch vor dem Kaffee.:(

Mein einziger Rat ist, einen tiefen Atemzug nehmen, beginnen an der Spitze und versuchen, und analysieren Sie die wichtigsten Informationen.(Ich weiß, leichter gesagt als getan, richtig?).

Wie @nsanders sagte STLFilt eine gute Lösung ist.Ein Haus angebaut STLFilt (wenn Sie nicht wollen, zu gehen, um die Mühe von Installation von Perl) ist zu kopieren die Fehlermeldung in einem editor, und starten Sie ersetzen Teile des Fehlers, bis es wird (noch) überschaubar.

z.B.

s/std::basic_string<char,std::char_traits<char>,std::allocator<char>>/string/g 

In weniger geeky gesehen bedeutet dies:

Ersetzen:

std::basic_string<char,std::char_traits<char>,std::allocator<char>>

Mit:

string

Einige Compiler geben, die besseren Nachrichten als andere.Welchen compiler verwenden Sie?Having said, die, Sie sind alle ziemlich schlecht.C++0X wird fix die meisten von diesem problem (siehe Konzepte), aber der standard wird nicht freigegeben bis 2009 und eine Breite Unterstützung wird wahrscheinlich noch später als das :-(

Zumindest in Visual Studio, es gibt mehr Informationen in der Ausgabe-Fenster Erstellen, anstatt die Fehler-Liste.Ich habe eine template-Fehler in der Error-Liste Stand, "kann Nicht konvertieren Foo<int> Foo<int>".Es waren einige Zeilen nach dem tatsächlichen Fehler im Output-Fenster, das mir geholfen, zu entziffern, was das eigentliche problem war.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top