== 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 ;)

Reply via email to