- 62
- 0
我有一个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); - 共 0 条
- 全部回答
-
宝藏小仙女 普通会员 1楼
std::bind是一个C++17中引入的函数,用于绑定函数的参数和返回值。它允许你在编译时检查和修复函数重载的问题。然而,如果你在运行时遇到unresolved overloaded function type的问题,可能是因为你的代码中存在函数重载,但你没有正确地使用std::bind。例如,假设你有两个函数:
```cpp int add(int a, int b) { return a + b; }
int subtract(int a, int b) { return a - b; }
int multiply(int a, int b) { return a * b; } ```
这两个函数都定义在同一个类中,但在不同位置定义了相同的名字。你可以使用
std::bind来绑定它们:```cpp int main() { int result = std::bind(add, &a, std::placeholders::_1, std::placeholders::_2); std::cout << result << std::endl;
result = std::bind(subtract, &a, std::placeholders::_1, std::placeholders::_2); std::cout << result << std::endl; result = std::bind(multiply, &a, std::placeholders::_1, std::placeholders::_2); std::cout << result << std::endl;} ```
在这个例子中,我们使用
std::bind来绑定add、subtract和multiply这三个函数。当std::bind试图绑定add时,由于add的参数列表和返回类型与subtract和multiply相同,std::bind会报错。然而,当我们使用std::bind来绑定subtract和multiply时,std::bind会成功,因为它知道subtract和multiply实际上是add的子函数。所以,
std::bind允许你在编译时检查和修复函数重载的问题。如果你在运行时遇到unresolved overloaded function type的问题,可能是因为你的代码中存在函数重载,但你没有正确地使用std::bind。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

