英特尔tbb parallel_for:带参数传递类成员函数
Intel tbb parallel_for: pass class member function with parameters?
是否可以将类成员函数(带参数)传递到parallel_fo?大致如下:
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> )
}
看看这个例子。
他们创建了一个类,并为该类提供所需的所有参数。在该类中还有一个operator()
,它对数据进行运算。然后用该类的一个实例调用parallel_fo。
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));
相关文章:
- 使用指向成员的指针将成员函数作为参数传递
- 将成员函数指针作为参数传递给模板方法
- 如何将成员函数作为回调参数传递给需要"typedef-ed"自由函数指针的函数?
- 如何将成员函数作为参数传递并在派生对象上执行方法列表
- 无法将指向类的成员函数的函数指针作为参数传递给同一类的另一个成员函数
- 移动类的成员作为常量引用参数传递
- C++将指向成员的指针作为模板参数传递
- C++ 将派生类的成员函数指针作为参数传递时选择了错误的模板专用化
- 将私有数据成员作为默认参数传递给该类的公共方法时出错
- 如何将成员函数作为参数传递?
- 使用 C++11 将指向成员函数的指针作为参数传递
- 是否可以将结构的成员变量作为参数传递
- 将参数传递给构造函数和成员函数时移动或复制
- 如何将已实现的虚拟成员函数作为参数传递
- 将派生类构造函数参数传递给受保护的成员
- 如何通过引用将参数传递给模板类的成员函数?
- 将参数传递给成员函数,就像使用 std::cout 一样
- 通过作为类的公共成员的两个函数将函数作为参数传递
- 使用可变模板参数传递成员函数指针是不明确的
- C++11通过推导的类型参数传递成员函数调用