Es scheint ein Problem mit Debug-Symbolen und Auto zu geben.
Ich habe eine automatische Funktion in einer Klasse:
%Vor%Wenn ich mit G ++ (4.8.2) und -g kompiliere, habe ich diesen Fehler:
%Vor%Mit clang ++ (3.4) und -g habe ich folgendes:
%Vor%Wenn ich das -g entferne oder den Typ explizit einstelle, funktioniert es perfekt.
Soll nicht clang ++ C ++ 14 Feature sein?
Gibt es einen Workaround für diese Einschränkungen oder ich bin geschraubt?
Auch nach einiger Zeit ist die einzige Problemumgehung, die ich gefunden habe, die Funktionsschablone zu machen, eine ziemlich dumme Problemumgehung ... Offensichtlich hat clang kein Problem mit automatischen Funktionen, die eine Vorlage sind. Ich weiß nicht, ob das in jedem Fall funktioniert, aber bis jetzt hat es für mich funktioniert.
%Vor%Das scheint jetzt auf Clang 3.5 SVN zu funktionieren. Live-Beispiel . Es scheint, dass der Schuldige ein Commit vom Mai 2013 war, siehe Nachricht auf der Clang-Mailingliste.
%Vor%PR16091: Fehler beim Versuch, Debug-Informationen für nichtdeduziertes Auto auszugeben Rückgabetypen
Vielleicht sollten wir das einfach unterdrücken, anstatt es zu korrigieren, aber seither Wir haben die Infrastruktur dafür. Ich dachte, ich würde es benutzen - wenn das so ist Entschlossen, nicht das Richtige zu sein, sollten wir das wahrscheinlich entfernen Infrastruktur komplett. Ich schätze, es liegt von Anfang an herum Debug-Info-Unterstützung zu implementieren.
Allerdings kann ich das Commit, das diese Information entfernt hat, nicht finden, vielleicht gab es eine Verbesserung, die jetzt verhindert, dass dieses Verhalten ausgelöst wird.