作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
想象一下以下场景:
typedef std::function<float(float)> A;
typedef float(*B)(float);
A foo();
void bar(B b);
您想按照以下方式做某事:
bar(foo());
显然这是行不通的。主要是因为A
可以包含一个状态,而B
是一个函数指针。如果我们知道 A
不包含状态并且我们希望以某种方式获取它的“含义”并将其放入可以为 B
传递的内容中怎么办?
这不可能吗?
最佳答案
如果你能保证A中存储的可调用对象是一个函数指针或者一个捕获列表为空的lambda,那么你可以简单地通过这种方式得到一个函数指针:
foo().target<B>();
关于c++ - 有没有办法从 `std::function` 返回到指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33864454/
我是一名优秀的程序员,十分优秀!