internal Compiler error: Segmentation fault
-
Was ist das Problem?
Ok, um C-Arrays gehts garnicht. Der Code Compiliert ja auch, wenn ich ne ganz normale Funktion nehm'. Geht das denn garnich' mit Lambdas?
-
Auf jeden Fall ist das etwas, wo du mal einen Bugreport einschicken solltest. Schließlich sollte der Compiler eine Meldung machen und nicht abstürzen.
-
SeppJ schrieb:
Auf jeden Fall ist das etwas, wo du mal einen Bugreport einschicken solltest. Schließlich sollte der Compiler eine Meldung machen und nicht abstürzen.
Wollt ich auch grad machen

Nää isnix
-
Ich glaube nicht dass man constexpr mit auto kombinieren kann.
Falls doch, dann musst du immer nochint b[four()]stattint b[four]schreiben.
-
Der Fehler tritt bei mir nur mit gcc-4.6.1 auf, mit 4.5.3 und einem 4.7.0er snapshot vom 15.10. gibt es jeweils
test.cpp: In function ‘int main()’:
test.cpp:5:15: error: size of array ‘b’ has non-integral type ‘const main()::<lambda()>’
-
hustbaer schrieb:
Ich glaube nicht dass man constexpr mit auto kombinieren kann.
Falls doch, dann musst du immer nochint b[four()]stattint b[four]schreiben.Muss ich das? Wusst ich garnicht, da es bisher immer ohne geklappt hat...
-
Also so wie oben gezeigt, nimmst du die Adresse der Lambda-Funktion (
four) als maximale Arraygroesse. D.h. liegt deine Funktion an Adresse 123240324, dann hat dein Array eben diese Groesse. Genau deswegen ist es Schwachsinn. Wenn die Arraygroesse 4 sein sollte, dann musst dufour()schreiben.
-
Ah jetz klappts Danke

Edit: es klappt auch ohne constexpr...
-
Weil GCC VLA's auch in C++ erlaubt.
-
in c99 geht das ja nech?

Und der msvc kann's nich, oder?