2016-04-16 10 views
0

Ich versuche, ein Visual C++ 2013 Projekt zu kompilieren, aber der Compiler diese mysteriösen Fehler wirft:C++ fehlende Informationen in Compiler-Fehler

Error 1 error C2338: The C++ Standard doesn't provide a hash for this type.

Es ist mir nicht sagen, welche Klasse, die einen Hash fehlt noch sagt es mir, in welcher Datei der Fehler auftritt. Vielmehr verbindet es mich mit einer Zeile in der Datei xstdef, die eine der Bibliotheken des Compilers zu sein scheint.

Wie können solche kritischen Informationen aus der Fehlermeldung weggelassen werden und wie gehe ich vor, um herauszufinden, welche Klasse der Täter ist?

+2

Nun ... finde die Datei, die ein kartenähnliches Objekt verwendet. – erip

+0

Ist das die gesamte Fehlermeldung? (Schauen Sie auf die Registerkarte Ausgabe, die Fehlerliste ist Quatsch.) Beginnen Sie mit der Untersuchung, was Sie in Ihre 'std :: unordered_map's schreiben. – molbdnilo

Antwort

0

Wenn Sie auf die Registerkarte Ausgabe schauen, wird es manchmal mehr Codezeilen auflisten (zB aus einer Datei/Zeile generierte Vorlageninstanz). Dies kann Ihnen helfen, das eigentliche Problem zu finden Klasse und nicht direkt auf die Klassendefinition verweisen.

Wenn Sie die letzten Änderungen vorgenommen haben, können Sie versuchen, die Änderung, die den Fehler verursacht hat, zu teilen oder zu verbergen.