[OT] Spielwiese für Hacker und PI (was: was mache ich falsch)
-
Fehlermeldung(en)?
-
D:\Eigene Dateien\C++ PROGRAMMS\TEMPB.cxx||In function 'int main()':|
D:\Eigene Dateien\C++ PROGRAMMS\TEMPB.cxx|6|error: 'a' does not name a type|
D:\Eigene Dateien\C++ PROGRAMMS\TEMPB.cxx|8|error: 't' does not name a type|
||=== Build finished: 2 errors, 0 warnings ===|Edit:
Hat
tehier nich'irgendwer auch malder Pumuckelauto _=[](){}in der Signatur?
-
wenn du den g++/gcc benutzt, versuche es mal mit -std=c++0x
-
vario-500 schrieb:
wenn du den g++/gcc benutzt, versuche es mal mit -std=c++0x
Is schon.
Is ja der gcc 4.6.1... der neueste
-
Soll ich da 'nen Thread aufmachen, wenn selbst der große PI es nicht weiß?
-
Stell dich bitte nicht dumm. Du sollst das beim Compiler-Aufruf mit angeben.
-
der compileraufruf sähe dann so z.b. aus:
g++ foo.cpp -std=c++0xum es mal etwas netter als pi zu formulieren

-
314159265358979 schrieb:
Stell dich bitte nicht dumm. Du sollst das beim Compiler-Aufruf mit angeben.
War schon nett genug

Ich benutz CodeBlocks 10.5, da kann man flags die bei Aufruf mitgegeben werden sollen angeben, da gibt's auch folgendeshave g++ follow the coming c++0x ISO C++ language standard [-std=c++0x]
is aktiviert, war es aber schon vorher bevor ich die Fehlermeldung erhalten hab.
Edit: Ich glaub, dass mit vonwegen der gcc 4.6.1 wär der neuste hast du falsch verstanden. Ich hab gejaht, das ich das Flag aktiviert hab, mich dazu auch gewundert wieso es denn nicht Funkioniert wenn das Standard C++11 ist und der Compiler alle Features enthalten soll.
-
Ahhh ich hab die Lösung
Flag:
-std=gnu++0x
-
lol. das ist nur ein sym drauf
-
fail schrieb:
lol. das ist nur ein sym drauf
Dein Name passt zu dir

Und kannst du auch Deutsch reden ?
Ich hab nix verstehen.
-
Wenn der Code mit -std=gnu++0x kompiliert und mit -std=c++0x nicht, dann kannst du mit großer Wahrscheinlichkeit davon ausgehen, dass er einen Fehler enthält.
Bei deinem ursprünglichen Beispiel hast du std::vector mit std::string verwechselt.
-
Hab ich, und ich habs geändert.
Und nein, ich hab beide Flags.
Und es funktioniert problemlos, so wie es soll.
-
Athar schrieb:
Wenn der Code mit -std=gnu++0x kompiliert und mit -std=c++0x nicht, dann kannst du mit großer Wahrscheinlichkeit davon ausgehen, dass er einen Fehler enthält.
Wie kann der Code Fehler enthalten, wenn er Kompiliert?
-
hast du dir mal die warnungen angeschaut?
-
vario-500 schrieb:
hast du dir mal die warnungen angeschaut?
Es kamen keine.
Der Code hat anstandslos kompiliert.
-
Hacker schrieb:
Wie kann der Code Fehler enthalten, wenn er Kompiliert?
Indem er Dinge enthält, die nicht standardkonform sind (d.h. Fehler im Sinne des Standards), die aber vom Compiler, den du benutzt, geschluckt werden können - was auch immer bei rauskommt.
Oder indem er UB erzeugt - das kompiliert zwar, ist aber trotzdem ein Fehler.
-
pumuckl schrieb:
Hacker schrieb:
Wie kann der Code Fehler enthalten, wenn er Kompiliert?
Indem er Dinge enthält, die nicht standardkonform sind (d.h. Fehler im Sinne des Standards), die aber vom Compiler, den du benutzt, geschluckt werden können - was auch immer bei rauskommt.
Oder indem er UB erzeugt - das kompiliert zwar, ist aber trotzdem ein Fehler.Das bugs Fehler sind, ist mir durchaus klar, mir ging es hier vielmehr um was anderes: wie kann der CODE falsch sein, wenn er kompiliert? Das fertige Programm ist ja dann eine andere "Fehlerebene".
-
Hacker schrieb:
wie kann der CODE falsch sein, wenn er kompiliert? Das fertige Programm ist ja dann eine andere "Fehlerebene".
Aha, toll, Fehlerebene... Ein Mann hat eine total verrückte Krankheit, kein Arzt kann es sich erklären. Gut, seine Eltern waren Geschwister, aber das ist eine andere Fehlerebene...
Wenn der Code undefiniertes Verhalten erzeugt, ist klar wo der Fehler liegt: im Code!!!
-
Hacker schrieb:
Das bugs Fehler sind, ist mir durchaus klar, mir ging es hier vielmehr um was anderes: wie kann der CODE falsch sein, wenn er kompiliert? Das fertige Programm ist ja dann eine andere "Fehlerebene".
int main() { ((void(*)())0)(); return 0; }In welchem Universum bezeichnet man diesen Code als richtig?