std::bind出现unresolved overloaded function type的问题?

codinghuang
  • 142

我有一个Event类:

class  Event
{
public:

int running;
struct Poll *poll;
TimerManager timer_manager;

std::function<bool()> handle_timer;
std::function<bool()> handle_io;

Event();
~Event();

bool wait();

private:

int num;

void  register_handler();
bool  default_handle_timer();
bool  default_handle_io();
};

然后,register_handler方法如下:

void  Event::register_handler()
{
handle_io = std::bind(default_handle_io, this);
handle_timer = std::bind(default_handle_timer, this);
}

编译报错:

error: no matching function for call to 'bind(<unresolved overloaded function type>, Event* const)'
     handle_io = std::bind(default_handle_io, this);
回复
阅读 5k
2 个回答
✓ 已被采纳
void  Event::register_handler()
{
handle_io = std::bind(&Event::default_handle_io, this);
handle_timer = std::bind(&Event::default_handle_timer, this);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏