On Thursday, 11 March 2021 at 12:26:07 UTC, Виталий Фадеев wrote:
Have:
void process( ref MouseKeyEvent event )
{
...
}
void process( ref MouseMoveEvent event )
{
...
}
Want:
_processMouseKey = &process; // <-- not works
_processMouseMove = &process; // <-- not works
What is correct way to get address of function with specific
argument ?
You can use __traits(getOverloads, process) plus some
metaprogramming to get the address of a specific overload. But
IMO the easiest way is to use lambdas:
__processMouseKey = (ref MouseKeyEvent event) {
process(event); };
__processMouseMove = (ref MouseMoveEvent event) {
process(event); };