Passing member-function to template

Zhenya zheny at list.ru
Sat Jan 12 11:16:01 PST 2013


On Saturday, 12 January 2013 at 19:06:27 UTC, Maxim Fomin wrote:
> On Saturday, 12 January 2013 at 18:17:47 UTC, Zhenya wrote:
>> Hi!
>> Tell me please,is there any way to pass member-function to 
>> template?
>
> Probably this can help: (you can manually construct a delegate 
> combining function and context pointers)
>
> import std.stdio;
>
> template execute(alias func)
> {
>     void execute(void* ptr)
>     {
>         void delegate() dg;
> 		  dg.funcptr = &func;
> 		  dg.ptr = ptr;
> 		  dg();
>     }
> }
>
> struct Foo
> {
>    void nothing()
>    {
> 		writeln("reached");
>    }
> }
>
> void main()
> {
>     Foo f;
>     execute!(Foo.nothing)(&f);
> }

Thank you,it really can help me.
But I would like to handle not only member-function,but global 
function too(by UFCS) if it's possible.


More information about the Digitalmars-d-learn mailing list