Ich habe C++ 14 in Code aktiviert (a QT5 Projekt) ähnlich den folgenden:Compiler stürzen auf generisches Lambda
auto func = [&](auto p, auto pp) {
if(!p)
return;
pp = p;
p->init();
this->member_function(pp->thing()); // replaces member_function(pp->thing());
};
MyClass *p1;
...
func(p1, m_p);
m_p->doSomething();
Nach dem Empfang:
internal compiler error: Segmentation fault
Debuggen fand ich m_p
nicht tat ändere nach dem Anruf zu func
, wie ich erwartet hatte. Funktioniert generisches Lambda() wirklich so? Wie gehe ich vor, um m_p
in Code wie oben zu ändern?
Ich habe Probleme beim Parsen des Titels und des Problems mit der Sprachfunktion. Hat "Generic Template" einen anderen Namen? Oder ist das ein Problem mit Auto-typisierten Variablen, Rückgabetyp Abzug oder Lambdas? Siehe auch [C++ Standards Support in GCC] (http://gcc.gnu.org/projects/cxx-status.html). – jww
Ist es jetzt besser? – KcFnMi
Manchmal lösen Kompilierungsfehler Compilerfehler aus. Möglicherweise generieren andere Teile Ihres Codes (z. B. doSomething()) einen Kompilierungsfehler, der wiederum einen Fehler im Compiler verursacht. Probieren Sie andere Compiler aus oder finden Sie heraus, was in Ihrem Code falsch ist (ohne die Hilfe des Compilers). Zunächst entfernen Sie die Caputure '&' im Lambda, da dies nicht notwendig ist. – alfC