Как правильно передать указатель функции

    class Window
    {
    public:
        //using EventCallbackFn = std::function<void(Event&)>;

        typedef void(*EventCallbackFn)(Event&);

        // Window attributes
        virtual void SetEventCallback(const EventCallbackFn& callback) = 0;
    
    };

    class WindowsWindow : public Window
    {
         inline void SetEventCallback(const EventCallbackFn& callback) override { m_Data.EventCallback = callback; 
    }

    struct WindowData
    {
        EventCallbackFn EventCallback;
    };

    WindowData m_Data;

APP:

    void Application::OnEvent(Event& e)
    {

    }
    Application::Application()
    {
        m_Window = std::unique_ptr<Window>(Window::Create());
        //m_Window->SetEventCallback(  std::bind(&OnEvent, this, std::placeholders::_1) );


        m_Window->SetEventCallback(/*Parametr*/);
    }

Как мне правильно передать ссылку на OnEvent?

UPD

Если использовать using EventCallbackFn = std::function<void(Event&)>;

А передвать через SetEventCallback(std::bind(&OnEvent, this, std::placeholders::_1)); Тогда работает, но как мне обойтись без bind и function?


Ответы (0 шт):