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.

Reply via email to