Member function pointers

Jacob Carlborg doob at me.com
Mon Jun 10 09:43:34 PDT 2013


On 2013-06-10 18:34, Manu wrote:
> On 11 June 2013 02:26, Jacob Carlborg <doob at me.com <mailto:doob at me.com>>
> wrote:
>
>     On 2013-06-10 17:40, David Nadlinger wrote:
>
>         Let me try to summarize it in code:
>
>         ---
>         class A { void foo(); }
>         auto memberFun = (&A.foo).funcptr;
>
>         auto a = new A;
>         memberFun(a);
>         ---
>
>
>     Why is this better than a delegate?
>
>
> It's not 'better', it's different.

class A { void foo(); }
auto memberFun = (&A.foo).funcptr;

auto a = new A;
void delegate () dg;
dg.funcptr = memberFun;
dg.ptr = cast(void*) a;
dg();

The details can be hidden in a function call. Sure, a delegate could be 
type safe but still don't see the point.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list