asinf Funktion wird nicht erkannt o_O



  • In C++ heisst der Header übrigens <cmath> statt <math.h> ...



  • Nexus schrieb:

    In C++ heisst der Header übrigens <cmath> statt <math.h> ...

    In C++ heisst der Header übrigens <cmath> und <math.h> .


  • Mod

    asinf schrieb:

    Nexus schrieb:

    In C++ heisst der Header übrigens <cmath> statt <math.h> ...

    In C++ heisst der Header übrigens <cmath> und <math.h> .

    Aber math.h ist ausdrücklich deprecated.



  • SeppJ schrieb:

    asinf schrieb:

    Nexus schrieb:

    In C++ heisst der Header übrigens <cmath> statt <math.h> ...

    In C++ heisst der Header übrigens <cmath> und <math.h> .

    Aber math.h ist ausdrücklich deprecated.

    Aber <cmath> ist ein fail. Offiziell existiert nur std::asin, aber es ist auch erlaubt, zusätzliche ::asin anbieten. Manche Implementationen haben aber nur ::asin.

    De facto ist deshalb math.h portabler, denn da weiss man, wo man dran ist.


  • Mod

    Manche Implementationen haben aber nur ::asin.

    Ja, aber wir berücksichtigen keine falschen Implementationen.

    De facto ist deshalb math.h portabler

    Unfug.

    Das portabelste ist <cmath> + std:: als nested-name-specifier.



  • Arcoth schrieb:

    Manche Implementationen haben aber nur ::asin.

    Ja, aber wir berücksichtigen keine falschen Implementationen.

    Unfug. Wir wollen Code schreiben, der auf allen Compilern läuft. Hast du früher überall export template verwendet?

    Das portabelste ist <cmath> + std:: als nested-name-specifier.

    math.h und globaler Namespace ist vom Standard gesehen genauso portabel. Du musst ja sowieso damit rechnen, dass alles im globalen Namensraum liegt.

    Und in der Praxis ist math.h portabler.



  • ka aber ich schreibe meinen code so, dass er auf korrekten implementierungen korrekt funktioniert (exotische sprachmittel wie export templates z.b. sind da ausgenommen, die basics wie korrekte header-namen wird man doch wohl noch erwarten könenn). wenn sich jemand nichtmal n compiler zutun kann der wenigstens die korrekten header-namen hat, dann ist es mir auch egal ob mein code da kompiliert.


  • Mod

    Unfug. Wir wollen Code schreiben, der auf allen Compilern läuft.

    Ich schreibe Code, der auf richtigen Compilern läuft. Nicht auf einer halbgaren Kacke ohne <cmath> . Die kann mir gestohlen bleiben. Selbiges wird dir auch SeppJ bestätigen.

    math.h und globaler Namespace ist vom Standard gesehen genauso portabel.

    Es ist deprecated und wird daher in Zukunft womöglich nicht mehr kompilieren müssen.



  • Arcoth schrieb:

    Es ist deprecated und wird daher in Zukunft womöglich nicht mehr kompilieren müssen.

    Nichts wird in Zukunft noch kompilieren müssen. Features können auch ohne jegliche Deprecation entfernt werden. Und bei C-Headers bin sich sehr zuversichtlich, dass das bis in alle Ewigkeit gehen wird.



  • asinf schrieb:

    Und bei C-Headers bin sich sehr zuversichtlich, dass das bis in alle Ewigkeit gehen wird.

    Sehr kluge Entscheidung. Falls sich ein wichtiger Compilerhersteller plötzlich doch mal entscheidet, sowas rauszuwerfen, hast du nur wegen deinen ideologischen Grundsätzen massiven Refactoring-Aufwand. Und das alles komplett unnötig.

    Oder gibts konkrete Gründe gegen <cmath> ? Compiler, welche diesen Header nicht unterstützen, sind keine C++-Compiler.


Anmelden zum Antworten