gpt4 book ai didi

c++ - 如何指向带有函数重载的函数?

转载 作者:行者123 更新时间:2023-12-01 14:39:50 25 4
gpt4 key购买 nike

#include <stdio.h>
#include <functional>

int foo(int x)
{
return x;
}

int foo(int a, int b)
{
return a + b;
}

int main()
{
std::function<int(int)> guiFunc2 = foo; //error : no suitable constructor exists to convert from "<unknown-type>" to "std::function<int(int)>"
std::function<int(int, int)> guiFunc1 = foo; //error : no suitable constructor exists to convert from "<unknown-type>" to "std::function<int(int, int)>"

return 0;
}

我想使两个函数指针指向具有相同名称的函数,但是此代码不起作用。

更改函数名称很容易,但是我想知道是否可以使用相同的名称来创建函数指针。

谢谢。

最佳答案

在分配之前将地址强制转换为正确的类型:

std::function<int(int)> guiFunc2 = static_cast<int(*)(int)>(foo);
std::function<int(int, int)> guiFunc1 = static_cast<int(*)(int, int)>(foo);

关于c++ - 如何指向带有函数重载的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60524500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com