metaprogrammierung: euklidischer algorithmus



  • ah cooler link, jetzt versteh ich den Nutzen davon besser 🙂



  • achja, der artikel hat meine letzte aussage doch verstärkt(steht ganz unten in den notes)

    Additionally, curiously enough, the enum version compiles over twice as fast as the static const int version on gcc 2.95.3.



  • otze schrieb:

    achja, der artikel hat meine letzte aussage doch verstärkt(steht ganz unten in den notes)

    Additionally, curiously enough, the enum version compiles over twice as fast as the static const int version on gcc 2.95.3.

    Naja, damit deine Aussage verstaerkt wird, muesste man wissen, wie es auf
    aktuellen Compilern aussieht, imho.

    mfg
    v R



  • @otze
    Dein Versuch in Ehren, aber wenn du damit 'ne Art LUT machen willst, dann ist TMP imo etwas übertrieben. Da sowas eh am Anfang des Programmes einmalig ausgeführt wird, spielt Geschwindigkeit dabei nur eine untergeordnete Rolle.



  • LUT? TMP? was heisst das? danach kann man so schwer googlen^^

    //edit lut=lookuptable?



  • @otze: Kann es sein, daß Du auf den guten alten ?: Trick reingefallen bist?
    Im Gegensatz zur Laufzeit wird zur Compilezeit kein short-curcuit evaluation betrieben und nicht nur der Code kompiliert, der im jeweils relevanten Teil steckt, sondern auch der andere Teil wird instanziiert.



  • @otze:
    LUT - Look Up Table
    TMP - Template Meta Programming



  • Was soll eigentlicher dieser Templatequatsch? Is doch total unwartbar und verstehen nur ein paar Nerds. Macht ihr das zum posen oder um l337 zu sein?



  • MeinNikcccc schrieb:

    Was soll eigentlicher dieser Templatequatsch? Is doch total unwartbar und verstehen nur ein paar Nerds. Macht ihr das zum posen oder um l337 zu sein?

    der ggt ist nur ein teilschritt. später soll auch der kgv zur compilezeit berechnet werden. ist bei alignement-berechnungen nötig. stell dir vor, du hast eine 16-byte-aligned struct und eine 10-byte-aligned-struct und willst speicher zur verfügung stellen, in den man ohne performanceverlust beides reistecken kann. musste halt kgv(10,16) ausrechnen. da das alignment eigenschaft des typs ist, sollte es zur compilezeit bestimmbar sein. und dazu brauchste ein ggt-template. was ist daran leet oder posen?



  • Jester schrieb:

    @otze: Kann es sein, daß Du auf den guten alten ?: Trick reingefallen bist?
    Im Gegensatz zur Laufzeit wird zur Compilezeit kein short-curcuit evaluation betrieben und nicht nur der Code kompiliert, der im jeweils relevanten Teil steckt, sondern auch der andere Teil wird instanziiert.

    i know,ist aber nicht immer verhinderbar.



  • Wieso nicht?

    Ein template mit einem bool-Parameter und einer Spezialisierung für true/false sollte eigentlich immer ganauso gut funktionieren. Ist zwar nicht so schön und so kurz, dafür funktioniert es besser.


Anmelden zum Antworten