'final' function implementations in interface definition
    HOSOKAWA Kenchi 
    hskwk at inter7.jp
       
    Sun Jun  7 23:02:09 PDT 2009
    
    
  
Steve Schveighoffer Wrote:
> On Sun, 07 Jun 2009 19:52:05 -0400, HOSOKAWA Kenchi wrote:
> 
> > Steve Schveighoffer Wrote:
> > 
> > 
> >> f_twice can be a template:
> >> 
> >> void f_twice()(int i) { f(i); f(i); }
> >> 
> >> It's pretty much exactly what you want.  It should even work without
> >> explicit instantiation.
> >> 
> >> -Steve
> > 
> > I have tried to replace final function in the interface with your code.
> > finally I got following message. Error: function I.f_twice!().f_twice
> > template member function not allowed in interface I
> 
> I could have sworn I'd seen this or written something like this in 
> tango's log package...
> 
> It probably would be a good solution to this problem...
> 
> -Steve
perhaps it is depends on the language version.
At least both DMD 2.030 and 1.045 reject your suggestion.
If the function is macro- or inline-type, there is no need to instantiate it into the interface definition.
Your suggestion might be legal for the language design, I think.
    
    
More information about the Digitalmars-d
mailing list