TBB function_node 具有成员函数
TBB function_node with member function
想象一下,我有一个 class MyClass 并且想使用 Intel TBB 实现多线程:
class MyClass
{
public:
tbb::flow::function_node<int, double>* _fnode;
private:
tbb::flow::graph* _graph;
double fbody(int inp);
}
是否可以用class成员函数初始化_fnode
?简单的方法不起作用:
_fnode = new tbb::flow::function_node<int, double>(*_graph,1,MyClass::fbody)
感谢 Jonathan 提出使用 std::bind 的想法。所以,这个问题的解决方案:
_fnode = new tbb::flow::function_node<int, double>(*_graph,1,std::bind(&MyClass::fbody, this, std::placeholders::_1));
想象一下,我有一个 class MyClass 并且想使用 Intel TBB 实现多线程:
class MyClass
{
public:
tbb::flow::function_node<int, double>* _fnode;
private:
tbb::flow::graph* _graph;
double fbody(int inp);
}
是否可以用class成员函数初始化_fnode
?简单的方法不起作用:
_fnode = new tbb::flow::function_node<int, double>(*_graph,1,MyClass::fbody)
感谢 Jonathan 提出使用 std::bind 的想法。所以,这个问题的解决方案:
_fnode = new tbb::flow::function_node<int, double>(*_graph,1,std::bind(&MyClass::fbody, this, std::placeholders::_1));