gpt4 book ai didi

c++ - 使用方法和对象创建功能对象

转载 作者:行者123 更新时间:2023-11-30 04:31:27 25 4
gpt4 key购买 nike

我想创建一个功能对象,以后可以从中调用(回调)构建对象和该对象的成员函数。

class A
{
public:

void AnyMethod() { cout << "Hello" << endl; }
};

int main()
{
A a;
function<???>f1(&A::AnyFunc, &a); // ?????

...
f1();
}

我有点糊涂了,因为创建线程很简单:

thread t1 ( &A::AnyFunc, &a); 
...
t1.join();

如果我将它与 lamba 函数一起使用会很简单,但这是我想避免的一点开销。

function<void(void)> f2( [&a](){ a.AnyFunc(); } ); // works fine

也许有更好的方法来获取可调用对象?

最佳答案

std::function<void()> f1 = std::bind(&A::AnyMethod, &a);

关于c++ - 使用方法和对象创建功能对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168865/

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