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;
}
- --
My enormous talent is exceeded only by my outrageous laziness.
http://www.ssTk.co.uk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iD8DBQFL9v4HT9LetA9XoXwRAgIvAKC8zwQP1EeaU/XkRijfm7m00nXqUQCdEdsN
CV/vi6l5JGnqH5M2WXU6gjU=
=0n7A
-----END PGP SIGNATURE-----

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