【发布时间】:2022-01-10 16:58:55
【问题描述】:
以下代码有效,但我觉得worker([this](int a, long b, int* c){receiver(a, b, c);}); 行有点多余,因为它重复了receiver 的签名。我可以通过某种方式直接传递成员函数,而不是传递一个依次调用成员函数的 lambda 函数吗?
using callback = std::function<void(int, long, int*)>;
void worker(callback c)
{
c(1,2L,(int*)3);
}
class Caller
{
public:
Caller()
{
worker([this](int a, long b, int* c){receiver(a, b, c);});
}
void receiver(int a, long b, int* c)
{
}
};
【问题讨论】:
标签: c++ std-function