Member function pointers

Manu turkeyman at gmail.com
Mon Jun 10 09:51:06 PDT 2013


On 11 June 2013 02:43, Jacob Carlborg <doob at me.com> wrote:

> 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.


You can see how much work that is right? And it's still not typesafe.
It's totally a hack.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20130611/1fb226fd/attachment.html>


More information about the Digitalmars-d mailing list