Bei Template-Spezialisierung Unverändertes übernehmen?



  • Hallo, ich nochmal schnell.

    Ist es eigentlich möglich, bei Template-Spezialisierungen, die Sachen die so bleiben sollen, wie im Haupt-Template ohne copy & paste zu übernehmen?
    Alles immer neu zu schreiben, ist doch viel zu aufwändig, unpraktisch und riskant, wenn man mal was ändern möchte.

    Und weil ich jetzt schon das Gefühl habe, dass es, wenn überhaupt, nicht direkt geht, wieviel Overhead würde das bedeuten??

    LG
    ULong


  • Mod

    Mach es doch so, wie sonst auch, wenn man Codeduplikate hätte: Mach eine Funktion dafür!



  • Oder umgekehrt, spezialisiere nur den Code, der anders ist.



  • reverse_iterator schrieb:

    Oder umgekehrt, spezialisiere nur den Code, der anders ist.

    Das ist ja sein Ziel. Ich nehme an es geht um Spezialisierung von Klassen? Dann könntest eine Basisklasse mit dem gemeinsamen Zeug definieren und davon erben. Wenn du das ohne virtual Functions macht dürfte das keinen Overhead kosten.



  • sebi707 schrieb:

    reverse_iterator schrieb:

    Oder umgekehrt, spezialisiere nur den Code, der anders ist.

    Das ist ja sein Ziel. Ich nehme an es geht um Spezialisierung von Klassen? Dann könntest eine Basisklasse mit dem gemeinsamen Zeug definieren und davon erben. Wenn du das ohne virtual Functions macht dürfte das keinen Overhead kosten.

    Das ist eine mögliche Lösung, aber ich meinte eine Hauptklasse (ohne Spezialisierung) und dann eine spezialisierte Hilfsklasse, welche sich um den Teil kümmert, der anders ist. Von der erbt man dann privat und kann generischen Code schreiben.

    @TE: Hast du ein Beispiel?



  • @SeppJ: Geht auch, solange man keine Member-Vars auslagern muss. Oder habe ich da was falsch verstanden?

    @sebi707: Das war auch mein erster Gedanke. Hätte ja sein können, dass es da von den Templates her nen speziellen Lösungsweg geben würde.

    @reverse_iterator: Auf die Idee wäre ich überhaupt nicht gekommen.. Einfach weil "Basis-Klasse" so nach Gemeinsamkeiten klingt und nicht nach Unterschieden..

    Ich habe jetzt beides ausprobiert. Funktioniert auch. Aber was ist nun besser??

    LG
    ULong


Log in to reply