我想在一个单独的线程中启动一个 std::function 类型。 我的代码目前看起来像这样:
struct bar
{
std::function<void(int,int)> var;
};
struct foo
{
bar* b;
foo()
{
std::thread t(b->var); //Error attempt to use a deleted function
}
};
为什么我会在这里尝试使用已删除的函数?
最佳答案
您的变量 b->var
是一个带有两个参数的函数。您需要发送这些参数才能使其工作。
struct bar
{
std::function<void(int,int)> var;
};
struct foo
{
bar* b;
foo()
{
std::thread t(b->var, 76, 89); // will call b->var(76, 89)
}
};
关于c++ - 使用变量类型的 std::function 运行线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36023836/