有一些棘手的代碼,並卡在一塊。將函數引用傳遞給該函數中的結構體
我有一個虛擬基類的後代函數。
裏面的那個函數是一個函子。仿函數需要能夠訪問這個函數及其父類中的所有對象。但是,在傳遞「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