Kompilierung Taschenrechner Punkt vor Strich + Konstruktor



  • Der funktioniert wunderbar, sogar ohne die zusätzlichen Klammern.



  • Woher hast du den Header? Der funktioniert:

    http://stroustrup.com/Programming/PPP2code/std_lib_facilities.h



  • MFK schrieb:

    Du musst den Rumpf deiner main-Funktion in geschweifte Klammern setzen.

    weiß nicht genau, was der standard hierzu sagt, aber msvc (2015) zumindest compiliert

    int main()
    try{}
    catch(...){}
    

    anstandslos
    hatte ich auch als erstes probiert als ich den thread gefunden habe und war verwundert



  • manni66 schrieb:

    Woher hast du den Header? Der funktioniert:

    http://stroustrup.com/Programming/PPP2code/std_lib_facilities.h

    Ich benutze den Header. Kann das an Visual Studio liegen (Ich habe auch das Problem, dass Visual Studio abstürzt, wenn ich ein neues Projekt erstelle)?

    Und was genau ist jetzt der Unterschied zwischen dem Konstruktor von dem Taschenrechnerprogramm

    Token {...}
    

    und soeinem Konstruktor https://de.wikibooks.org/wiki/C%2B%2B-Programmierung/_Eigene_Datentypen_definieren/_Erstellen_und_Zerstören ?

    MfG
    mrcharter



  • mrcharter schrieb:

    Kann das an Visual Studio liegen (Ich habe auch das Problem, dass Visual Studio abstürzt, wenn ich ein neues Projekt erstelle)?

    Installier bitte VS richtig, bzw. beheb die offfensichtlichen Probleme mit Deiner Installation.

    unskilled schrieb:

    weiß nicht genau, was der standard hierzu sagt, aber msvc (2015) zumindest compiliert

    int main()
    try{}
    catch(...){}
    

    anstandslos

    Siehe hier: http://en.cppreference.com/w/cpp/language/function-try-block



  • mrcharter schrieb:

    Und was genau ist jetzt der Unterschied zwischen dem Konstruktor von [code="cpp"]Token {...}[code="cli"] und soeinem Konstruktor https://de.wikibooks.org/wiki/C%2B%2B-Programmierung/_Eigene_Datentypen_definieren/_Erstellen_und_Zerstören machen?

    Keine Ahnung. Deine Frage ist völlig kaputt. Es gibt einen Vorschauknopf, da kann man sich alles ansehen, bevor man es abschickt.



  • manni66 schrieb:

    Keine Ahnung. Deine Frage ist völlig kaputt. Es gibt einen Vorschauknopf, da kann man sich alles ansehen, bevor man es abschickt.

    Sorry, war ein Versehen, habe es berichtigt.

    Und was genau ist jetzt der Unterschied zwischen dem Konstruktor von dem Taschenrechnerprogramm
    C++:
    Token {...}
    und soeinem Konstruktor https://de.wikibooks.org/ ....... tellen_und_Zerst%C3%B6ren ?

    Hat darauf jemand eine Antwort?

    Ich bin jetzt dabei Visual Studio zu reparieren, und habe den Code unter Codeblocks ausprobiert.
    Ich habe folgende Fehlermeldungen bekommen:

    ||=== Build: Debug in trtest (compiler: GNU GCC Compiler) ===|
    /usr/include/c++/4.9/backward/backward_warning.h|32|warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]|
    /usr/include/c++/4.9/bits/locale_facets_nonio.h|1869|error: template-id ‘do_get<>’ for ‘String std::messages<char>::do_get(std::messages_base::catalog, int, int, const String&) const’ does not match any template declaration|
    /usr/include/c++/4.9/bits/locale_facets_nonio.h|1869|note: saw 1 ‘template<>’, need 2 for specializing a member function template|
    /home/tobias/Dokumente/C++/trtest/main.cpp||In member function ‘Token Token_stream::get()’:|
    /home/tobias/Dokumente/C++/trtest/main.cpp|84|warning: control reaches end of non-void function [-Wreturn-type]|
    /home/tobias/Dokumente/C++/trtest/main.cpp||In function ‘double primary()’:|
    /home/tobias/Dokumente/C++/trtest/main.cpp|113|warning: control reaches end of non-void function [-Wreturn-type]|
    ||=== Build failed: 1 error(s), 3 warning(s) (0 minute(s), 2 second(s)) ===|
    

    Kann mir jemand sagen, was ich falsch mache?

    Vielen Dank im Voraus!

    MfG

    mrcharter



  • /usr/include/c++/4.9/backward/backward_warning.h|32|warning: #warning This file includes at least one deprecated or antiquated header which may be removed without further notice at a future date. Please use a non-deprecated interface with equivalent functionality instead. For a listing of replacement headers and interfaces, consult the file backward_warning.h. To disable this warning use -Wno-deprecated. [-Wcpp]|
    

    steht doch alles drin. welcher header das ist, weiß ich aber nicht. evtl strstream oder so was includiert?

    /usr/include/c++/4.9/bits/locale_facets_nonio.h|1869|error: template-id ‘do_get<>’ for ‘String std::messages<char>::do_get(std::messages_base::catalog, int, int, const String&) const’ does not match any template declaration| 
    /usr/include/c++/4.9/bits/locale_facets_nonio.h|1869|note: saw 1 ‘template<>’, need 2 for specializing a member function template|
    

    vergleich doch mal aufruf und derklaration der fkt.

    /home/tobias/Dokumente/C++/trtest/main.cpp||In member function ‘Token Token_stream::get()’:| 
    /home/tobias/Dokumente/C++/trtest/main.cpp|84|warning: control reaches end of non-void function [-Wreturn-type]|
    

    es kann passieren, dass deine fkt nichts zurückgibt, obwohl sie das muss.
    das solltest du selbst erkennen.

    /home/tobias/Dokumente/C++/trtest/main.cpp||In function ‘double primary()’:| 
    /home/tobias/Dokumente/C++/trtest/main.cpp|113|warning: control reaches end of non-void function [-Wreturn-type]|
    

    noch mal.

    bb

    PS: wenn du so weiter machst, kann es ganz schnell passieren, dass du gar keine antworten mehr bekommst, weil du etwas wenig eigeninitiative zeigst.



  • mrcharter schrieb:

    Und was genau ist jetzt der Unterschied zwischen dem Konstruktor von dem Taschenrechnerprogramm
    C++:
    Token {...}
    und soeinem Konstruktor https://de.wikibooks.org/ ....... tellen_und_Zerst%C3%B6ren ?

    Hat darauf jemand eine Antwort?

    Ich sehe keinen Unterschied. Was meinst du?

    mrcharter schrieb:

    und habe den Code unter Codeblocks ausprobiert.
    Ich habe folgende Fehlermeldungen bekommen:

    Mit einem gcc 4.9? Keine Ahnung ob es damit klappt. Mit gcc 6.3 auf Linux geht es mit dem gezeigten Code und der von mir verlinkten std_lib_facilities.h.



  • Vielen Dank für die Antworten.

    Code:
    /usr/include/c++/4.9/bits/locale_facets_nonio.h|1869|error: template-id ‘do_get<>’ for ‘String std::messages<char>::do_get(std::messages_base::catalog, int, int, const String&) const’ does not match any template declaration|
    /usr/include/c++/4.9/bits/locale_facets_nonio.h|1869|note: saw 1 ‘template<>’, need 2 for specializing a member function template|

    vergleich doch mal aufruf und derklaration der fkt.

    Habe jetzt alle bis auf die beiden berichtigt. Leider habe ich mich nicht mit Templates nicht beschäftigt und kann darum nichts damit anfangen (bzw. habe es mir angeschaut und bin leider zu keinem Ergebnis gekommen). Es wäre nett, wenn mir jemand sagen kann, was ich noch ändern muss damit es passt.

    Ich sehe keinen Unterschied. Was meinst du?

    Hat sich erledigt.

    MfG

    mrcharter



  • mrcharter schrieb:

    was ich noch ändern muss damit es passt

    Nichts. Installiere einen aktuellen Compiler (für Windows VS2017).


Anmelden zum Antworten