有一些棘手的代码,并卡在一块。将函数引用传递给该函数中的结构体
我有一个虚拟基类的后代函数。
里面的那个函数是一个函子。仿函数需要能够访问这个函数及其父类中的所有对象。但是,在传递“this”或函数名称的引用时,会出现错误。
所有这些复杂的原因是加速代码。我编码的算法确实只有一个昂贵的部分。我的意图是并行化该部分。但是,该步骤通过几个步骤同时累积超过两个值。所以,我需要重写一些操作符。仿函数看起来是实现这个最简单的方法。
任何人都可以建议如何解决这个问题。
代表下面的代码:
myClassA Glm{
public:
virtual int functionA(int a, int b)=0;
}
class myClassB : public myClassA {
public:
virtual int functionA(int a, int b);
}
int functionA(int a, int b){
// do some stuff
struct MyFunctor : public binary_function<Fraction, DoubleIterator, Fraction> {
MyFunctor(myClassA& in_class, int A) : myClassA(in_class), column(iColumn) {
}
myClassA& myClassA;
int A;
Fraction operator()(double B, int A,) {
double C = doFancyStuff(A,B);
return C;
}
}
//use stl to accumulate
accumulate(data.begin(), data.end(), temp, MyFunctor(*this, column));
}
你得到的错误是什么? – crazyjul