constexpr und <cmath>



  • Hallo,

    libstdc++ bietet ja die mathematischen Funktionen aus <cmath> in constexpr an, was mir sehr gefällt. Ich wollt' fragen, ob sowas vll. mal in den Standard kommt, und wenn nicht, was spricht dagegen? Ich sehe im Moment gerade nicht, wieso das nicht möglich sein sollte.

    Ferner: nach constexpr zu überladen scheint nicht zu funktionieren. Gibt es dennoch eine Möglichkeit, wie ich das errreichen kann? Ich will eine eigene Sqrt-Funktion machen (jetzt als Beispiel). Wenn sie normal aufgerufen wird, soll halt der korrekte x86_64 Opcode für Wurzelziehen generiert werden. Und wenn sie in einem constexpr-Kontext aufgerufen wird, dann schreib ich halt eine kleine Schleife, die den Wert mit Newton bestimmt (was zur Laufzeit natürlich viel langsamer wäre).

    LG 🙂


  • Mod

    Compiler dürfen sowieso schon Hintergrundwissen über die Funktionalität der Standardbibliothek benutzen, um Aufrufe zu optimieren. Insofern besteht kein dringender Bedarf, das auch mittels der Signatur zu formalisieren. Wird gewiss irgendwann kommen, wird aber praktisch keinen Unterschied machen.

    Bezüglich der anderen Frage: Mir fällt keine Methode dafür ein. Fehlt leider als Sprachfeature 😞


Log in to reply