On Tue, Mar 14, 2017 at 05:05:10PM +0000, Inquie via Digitalmars-d-learn wrote: > I am generating member function pointers using the declaration > specified from a standard member function. The standard member > function is a valid D function that could use any types. > > Is there any pitfalls like there are in C++ from generating a function > pointer from them? > > e.g., > > X foo(A,B,C) @R @S @T -> X function(A,B,C) @R @S @T fooptr; > > In my case, there are no attributes, so that might ease the burden. > > e.g., a template that converts a member function declaration. > > ToFunctionPtr!("X foo(A,B,C) @R @S @T)", fooptr) > > or > > ToFunctionPtr!(foo, fooptr) > > gives function pointer declaration who's declaration is the same as > foo.
Not 100% sure what exactly you mean... but I'm guessing you have some aggregate X with some member function method(), and you want to get a function pointer from that? Perhaps something like this? struct X { int method(float x) { return 0; } } typeof(&X.method) membptr; pragma(msg, typeof(membptr)); // prints `int function(float x)` If you need to refer to the function pointer type frequently, you could alias it to something easier to type; alias FuncPtr = typeof(&X.method); FuncPtr membptr; T -- Turning your clock 15 minutes ahead won't cure lateness---you're just making time go faster!