C++11 und Code::Blocks / gcc 4.4.1
-
Hallo,
ich kann kein Code für C++11 übersetzen.
Unter den Compileroptionen kann ich ein Hacken bei "Have g++ follow the coming C++0x ISO C++ language standard [-sdt=c++0x]" setzen. Bringt leider nichts.
Nichtmal das kleines Minimalbeispiel wird übersetzt.Was mache ich falsch?
Release 10.05 rev 6283 (2010-05-27 09:09:13) gcc 4.4.1 Windows/unicode - 32 bit
Irgendein Beispielcode aus der MSDN
// declaring_lambda_expressions1.cpp #include <functional> int main() { // Assign the lambda expression that adds two numbers to an auto variable. auto f1 = [] (int x, int y) { return x + y; }; // Assign the same lambda expression to a function object. function<int (int, int)> f2 = [] (int x, int y) { return x + y; }; }
-
Sehr exquisit. Ich nehm mal an, die Fehlermeldungen sollen wir erraten ?
Die Adresse von wo du den Code herhast wär vielleicht auch ganz nützlich.
-
C++11Lernen schrieb:
Was mache ich falsch?
Du sagst nicht, wie sich "ich kann kein Code für C++11 übersetzen" äußert.
Aber function wird wohl nicht ohne std-Namespace funktionieren.
-
Hier die Quelle:
http://msdn.microsoft.com/de-de/library/dd293599.aspxDa das Beispiel neue Teile der Sprache betrachtet, sollte man auch mit der aktuellsten Version des Compilers ans Werk gehen. Will sagen es gibt schon neuere Versionen als den gcc 4.4.1. Ob das damit funktioniert?
MfG f.-th.
-
Ich würde mich an deiner Stelle als Erstes fragen, ob der Compiler überhaupt in der Lage ist zu machen, was du von ihm verlangst, und dann die richtige Version installieren.
-
Hier etwas zu dem Thema aus einer anderen Quelle:
http://www.cprogramming.com/c++11/c++11-lambda-closures.htmlDu brauchst inimal den gcc 4.5
MfG f.-th.
-
Verzeihung, ich hielt die Fehlermeldung für weniger wichtig, weil prinzipiell kein Code für C++11 übersetzt wird. Laut dieser Liste sollte aber gcc 4.4 bereits einiges können: http://gcc.gnu.org/projects/cxx0x.html
Ich kann es gerade nicht testen und melde mich (mit sinnvollerer Problembeschreibung) wieder.
-
Ich weiss es gibt aktuellere gcc
Der gcc4.5.2 übersetzt den gezeigten Quelltext, wenn du
using namespace std;
ergänzt.
MfG f.-th.
-
So jetzt gcc 4.6.1 -> auch okay
Die Fehlermeldungen bei dem Beispielquelltext sind bei dem 4.6.1 aufschlussreicher als beim 4.5.2
MfG f.-th.
-
Habe jetzt 4.5.2 am laufen. Damit funktioniert das Beispiel.
Ist das nicht die neuste Version im MinGW-Projekt?
-
http://tdm-gcc.tdragon.net/download
Es gibt auch noch andere Seiten wo man den gcc laden kann. Bin mir nicht sicher ob die alle die gleiche Version bieten.
MfG f.-th.