Как правильно передать указатель функции
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?