【发布时间】:2018-04-09 05:39:46
【问题描述】:
我想传递一个作为参数的函数并将void * 返回给另一个函数。
现在我有以下代码:
MyClass *MyClass::bind(std::function<void*(void *)> fun) {
this->value = fun(this->value);
return this;
}
value 是MyClass 内部的void * 变量,我不知道如何将函数传递给我的函数bind。
当我尝试将这样的函数名称传递给它时
auto *class = new MyClass();
class->bind(fooFunction);
我得到了错误
no viable conversion from '<overloaded function type>' to 'std::function<void *(void *)>'
有没有什么方法可以用这段代码实现我想要的,或者有更简单的方法吗?
【问题讨论】:
-
您的问题不在于显示的代码,而在于您选择不显示的代码。键入一个minimal reproducible example,它会重现错误并以其他方式编译,但它是最小的并分享它。你的变量名是非法的,所以你的伪代码不能是完全不相关的代码。
标签: c++ c++11 pointers function-pointers void-pointers