007
13.03.2009, 15:38 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
Zitat von ~testo: |
Lieber tommix, danke für deinen beitrag. Bist du sicher dass beim compilieren sich entscheidet? Ich glaube eben nicht. Erst zur Laufzeit entscheidet sich ob das array complex oder float wird.
und gerade dein code-bespiel ist genau das was ich vermeiden will bzw. worauf die frage abzielt: Muss ich für jeden typen eine spezialisierung schreiben oder kann ich irgendwie zur Laufzeit ein allgemeingültiges templates-basiertes Fill() aufrufen?
|
templates werden immer zur compile-zeit erzeugt, d.h das wird nicht während der laufzeit gemacht, wäre auch hirnrissig. So kann der Compiler dann wenigstens optimieren, während der laufzeit wär das kaum möglich. über templates dürfte deines sogar kostengünstiger sein, weil die ganzen if(type == ...) wegfallen, was doch immer mindestens nen vergleich verursacht, bei templates stehts scho vorgegeben im speicher
Dein code wird halt durch templates größer, aber heißt nicht das er langsamer wird dadurch. Wenn dir an Geschwindigkeit was liegt, dann ist auch der Real-Type als Complex zu betrachten net so verkehrt, wie tommix sagt (oder wars ao?) wäre das dann evtl zwar speicherintensiver, aber schneller als eine gleiche behandlung für alle typen gibts wahrscheinlich kaum. -- class God : public ChuckNorris { }; |