Zeiger in Zeiger konvertieren - Templates



  • Warum ist dir eigentlich so wichtig, dass das executable klein ist? Das wird hier ja kaum um Größenordnungen gehen sondern eher um ein paar Promille bis Prozent, jenachdem was du machst. 64 intro (Demoscene)? 🙂



  • zumal auch solche konvertierungen die du dir erhoffst nicht unbedingt vom compiler genutzt werden, da dieser ja ohne jegliche hürden den typ bestimmt und dafür eine funktions signatur sucht. sprich, es kann sein, dass er trotz deines schönen void* templates doch auf eigene faust andere instantiierungen bildet



  • Mir geht es ja nicht um die paar Promille, sondern einfach ums Prinzip. Wenn es schlanker und schneller geht, dann soll es eben schlanker und schneller sein, da spricht ja nichts dagegen. Ich finde es nur schade, wenn man daran gehindert wird. Vielleicht (jetzt kommt der Freud in mir) liegt es ja auch an meinem Hang fürs Axiomatisieren. 😃



  • Beim Programmieren geht man nunmal Kompromisse ein. Der klassische ist size vs. speed, in dem Fall denke ich aber eher an Code-Einfachheit vs. size. Und für mich ist eleganter, simpler code erstmal das wichtigste (so ganz axiomatisch ;)), wovon ich nur abweiche wenn es nötig ist. Andere Leute, die den source mal irgendwann bearbeiten wollen/müssen (oder gar man selbst nach einiger Zeit) freuen sich da ja (bzw. ärgern sich ziemlich wenns nicht so ist).



  • pureprogger schrieb:

    Wenn es schlanker und schneller geht, dann soll es eben schlanker und schneller sein

    Dann nimm doch optimierten inline-assembler 🤡



  • Da kann ich dir nur zustimmen, Dobi. Sauberer Code geht natürlich immer vor. 🙂

    @Sone: 😃



  • Mal abgesehen davon sind Templates schneller als Generics...



  • Kellerautomat schrieb:

    Mal abgesehen davon sind Templates schneller als Generics...

    Laut dem was ich im Netz lese, sind Templates eine Form der Unterstützung von Generics.



  • Darf ich dich bitten, zuerst den Thread zu lesen, bevor du schreibst?

    Kellerautomat schrieb:

    Generics und Templates sind nunmal zwei komplett verschiedene Dinge. [...]



  • Kellerautomat schrieb:

    Darf ich dich bitten, zuerst den Thread zu lesen, bevor du schreibst?

    Kellerautomat schrieb:

    Generics und Templates sind nunmal zwei komplett verschiedene Dinge. [...]

    Vielen Dank, ich habe den Thread gelesen.
    Falls du Recht haben solltest, kannst du den Wikipedia-Eintrag editieren.



  • Bei Programmiersprachen gibt es prinzipiell zwei Ansätze, generische Typen zu unterstützen. Der eine ist es, dass GenerischerTyp<T> für alle Ts denselben Code verwendet und über dynamische Bindung von Methoden spezifische Eigenschaften von T nutzt. Ein anderer Weg, den u.A. C++ geht, ist die Anwendung von Templates. Dabei wird der Typparameter zur Compilierzeit direkt mit dem konkreten Typ ersetzt.



  • Kellerautomat schrieb:

    Bei Programmiersprachen gibt es prinzipiell zwei Ansätze, generische Typen zu unterstützen. Der eine ist es, dass GenerischerTyp<T> für alle Ts denselben Code verwendet und über dynamische Bindung von Methoden spezifische Eigenschaften von T nutzt. Ein anderer Weg, den u.A. C++ geht, ist die Anwendung von Templates. Dabei wird der Typparameter zur Compilierzeit direkt mit dem konkreten Typ ersetzt.

    Halt, da hab' ich wohl falsch verstanden. Ich dachte, Generics sind generische Typen. Dabei sind, wie du schon angedeutet hast, Generics und Templates die Umsetzung von generischen Typen. 💡 wurde so im Artikel falsch impliziert.

    Danke.


Anmelden zum Antworten