Y
Simon2 schrieb:
YASC|logged_out schrieb:
Simon2 schrieb:
Hi,
... allerdings sehe ich nicht, wo Deine ("test"-)Klasse mehr tut als ein schlichtes Funktionstemplate wie:
template<typename T>
void test_it(T &arg) { arg.do_it(); }
Mehr soll sie ja auch nicht tun
... vielleicht habe ic mich ungenau ausgedrückt: Ich sehe nicht, wo "Dein Konstrukt bzgl. Compilezeitunabhängigkeit mehr bietet als ein einfaches Funktionstemplate".
OK, danek für die Klarstellung
Durch die "virtual-Indirektion" kannst Du zwar zur Compilezeit Deiner "test"-klasse) festlegen, wann, wo, wie Deine Wrapperklassen aufgerufen werden, aber wie diese mit dem parametrisierenden Typen umgehen, kannst Du eben leider nicht vorgeben (bzw. diesen Source bekommt der Anwender trotzdem in die Hand gedrückt).
Sollten irgendwelche raffinierten Algorithmen oder so in der Implementation auftauchen, müssen diese aber gerade nicht dem Anwender in die Hand gegeben werden. Das ist in meinem Beispiel zwar nicht der Fall, aber es ist schließlich auch nur ein Minimalbeispiel ;). Was mit den übergebenen Objekten gemacht wird, muss aber trotzdem im Header stehen, da hast du Recht.
Aber auf jeden Fall eine Verbesserung, finde ich.
Nichtsdestotrotz habe ich durch Deinen Entwurf einiges gelernt.
Danke