Я использую PPL и параллельный _синтаксис, чтобы иметь цикл for. В предложении захвата у меня есть 3 переменные, одна из них является членом класса. Ошибка компиляции из-за наличия члена класса среди переменных в предложении захвата. Однако, если у меня есть этот член класса в теле лямбда, он также не компилируется, и указанная ошибка заключается в том, что переменная в охватывающей области должна быть в предложении захвата. Как действовать? Должен ли я заранее скопировать элемент переменной в локальную переменную и передать его в предложении захвата?
Вот код с FormulaCommand членом класса.
parallel_for (m_rowStart,m_rowEnd+1,[&functionEvaluation,varModel_,formulaCommand](int i)
{
MLEquationVariableModel model_(varModel_);
model_.addVariable("i", i);
model_.addVariable("j", 1);
MLEquationCommand* command_ = formulaCommand->duplicate(&model_);
double d = command_->execute().toDouble();
if(d==NO_VALUE)
{
functionEvaluation.local() = NO_VALUE;
}
else
{
functionEvaluation.local() += d;
}
delete command_;
});
Спасибо!