Templates and delegates trouble

Lars Kyllingstad public at kyllingen.NOSPAMnet
Wed Oct 8 11:17:35 PDT 2008


Steven Schveighoffer wrote:
> "Lars Kyllingstad" wrote
>> Hello,
>>
>> I want to make a function (named 'call' in the example below) that calls 
>> another function (F). I want to allow F to be an ordinary function, a 
>> delegate, or a functor. I've been able to make it work with functions and 
>> functors, but not with delegates. Any tips would be greatly appreciated.
> 
> You can't alias a delegate like that.
> 
> Try this:
> 
> auto sqrt = new Sqrt;
> auto fn = &sqrt.eval;
> call!(fn)(4.0);

This works. Thank you!

> What is happening is you are aliasing the eval function symbol, but not the 
> sqrt instance to call it from.  Aliasing isn't exactly like a macro 
> substitution.
> 
> This might also work (haven't tested it):
> 
> call!(&sqrt.eval)(4.0);

This doesn't work.


More information about the Digitalmars-d-learn mailing list