== Quote from div0 (d...@users.sourceforge.net)'s article > strtr wrote: > > Is that different from making all functions within the template final? > > Well it delegates the choice of virtual versus non virtual to the class > using the mixin. No idea if that's a good idea or a bad one; I guess > you'd have to think very carefully about what your mixin is trying to > achieve. > I just tried marking a function in the template final > and that seems to work as well, so you could have a mix of virtual and > non virtual in a template, but that feels like a hackish design. > So you can it appears do this: (though that's dmd 2.028) > template bar(T) { > final: > void test(T t) { > writefln("t: %s", t); > } > void test2() { > } > } > class foo { > mixin bar!(int); > } > int main(){ > foo f = new foo; > f.test(3); > f.test2(); > return 0; > }
I've been marking functions final on a per function basis within the templates but after reading the docs I was afraid the compiler might just ignore the attribute and make all mixin-template-functions virtual. "Mixins can add virtual functions to a class" http://www.digitalmars.com/d/1.0/template-mixin.html But that sentence was probably meant as an example not the exclusive description :) Anyway, Thanks!! Shouldn't be thinking about optimization anyways ;)