Member function pointers

Freddy via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 9 13:18:04 PDT 2015


On Wednesday, 9 September 2015 at 18:50:45 UTC, Walter Bright 
wrote:
> On 6/7/2013 4:21 PM, Manu wrote:
>> So from my dconf talk, I detailed a nasty hack to handle 
>> member function
>> pointers in D.
>
> https://www.digitalmars.com/articles/b68.html

Here's on automatic version

import std.traits : Parameters;

enum MemberFunc(alias Type, string member) = (ref Type self, 
Parameters!(__traits(getMember, Type, member)) args) => 
mixin(q{self.} ~ member ~ q{(args)});

unittest
{
     static struct A
     {
         bool test;
         void b(int arg)
         {
             test = arg == 4;
         }
     }

     A a;
     auto func = MemberFunc!(A, "b");
     func(a,4);
     assert(a.test);
}



More information about the Digitalmars-d mailing list