class scope virtual template functions

BCS ao at pathlink.com
Sun Jun 15 16:18:38 PDT 2008


Reply to Bruno,

> module test;
> class A
> {
> void Template_foo(int i) {writef("Hello %d\n", i);}
> void Template_bob(int i) {writef("See ya %d\n", i);}
> template Template(string s: "foo") { alias Template_foo Template; }
> template Template(string s: "bob") { alias Template_bob Template; }
> }
> class B : A
> {
> override void Template_foo(int i) {for(int j=0;j<i;j++)
> writef("Hello\n");}
> override void Template_bob(int i) {for(int j=0;j<i;j++) writef("See
> ya\n");}
> }

I think that might work in some cases (maybe even mine). However In my cases 
the called functions are generated so once I need to generate different names 
for the functions I might as well go with mixins for the calls and then there 
is no point in using templates. But even if it can be made to work it seems 
so klugey...

Walter: How restrictive would the rules have to be before templates functions 
could be virtual? For my case I could tag them with an extra attribute, make 
sure there are no non virtual ones and a lot of other things. 





More information about the Digitalmars-d mailing list