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); };

Reply via email to