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