Cumulative

Tofu Ninja emmons0 at purdue.edu
Mon Feb 24 15:51:15 PST 2014


On Monday, 24 February 2014 at 08:41:06 UTC, Steve Teale wrote:
> 25 years ago, when I was trying to write some sort of library 
> to go with Walter's C++ compiler, I had a wish, and it still 
> pops into my head from time to time.
>
> What I wanted was functions that were declared in a base class 
> as 'cumulative', or something similar. They would have been 
> generally like virtual functions, except that any derived class 
> that wanted to do something extra - as opposed to something 
> different, would simply define an 'extend', and just specify 
> the extra code. The compiler would then automatically add a 
> call to the same function in whatever base class last defined 
> or extended the method.
>
> extend void foo()   // Declared in base class as cumulative 
> void foo()
> {
>    (cast(BaseClass) this).foo();  // Compiler does this for you
>                                   // similar to changing a 
> light bulb ;=)
>
>    // the extra stuff
> }
>
> I think also that it might be necessary for the base class 
> function to return on behalf of the derived method as opposed 
> to to it.
>
> Does this make any sense?
>
> Steve

This is something that I have wished for as well. If it was 
automatically inserted, it would only make sense for it to be 
useable on functions with no return and no arguments. If it was 
just enforcement then it wouldn't matter.

Something that does do this currently is default constructors.


More information about the Digitalmars-d mailing list