是否可以将类成员函数(带参数)传递给parallel_for?大致意思是:
void classT::A(const tbb::blocked_range<std::size_t>& r,b) {}
void classT::B(e,f,g) {
tbb::parallel_for( blocked_range<size_t>(0,n), <need to call A with parameter b,
along with r> )
}
Look at 这个例子 http://pages.cs.wisc.edu/~gibson/tbbexample/main.C.html.
他们创建一个类并为该类提供所需的所有参数。
那个班级里还有一个operator()
它对数据进行操作。
然后使用该类的实例调用parallel_for。
parallel_for(blocked_range<int>(0, nElements, 100), ArraySummer( p_A, p_B, p_SUM_TBB ) );
//The class is arraysummer
你怎么能做到这一点:
class ClassTACaller
{
int* m_parameter;
ClassT* m_Tinstance
public:
ClassTACaller(ClassT* tinstance, int* param):m_parameter(param), m_Tinstance(tinstance){}
void operator() ( const blocked_range<int>& r ) const
{
m_Tinstance->A(r, param);
}
};
parallel_for(blocked_range<int>(0, nElements, 100), ClassTACaller(&classTinstance, &x));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)