Предположим, у меня есть следующий код, который я хочу реорганизовать:
int toFuture()
{
precalc();
int calc = 5 * foobar_x() + 3;
postcalc();
return calc;
}
int toPast()
{
precalc();
int calc = 5 * foobar_y() - 9;
postcalc();
return calc;
}
В классическом C я бы реорганизовал этот код в worker (), который принимает указатель на функцию, выполняющую вычисления : общий код в worker (), конкретный код предоставляется указателем на функцию.
Должен ли я вместо этого использовать лямбда-выражение в C ++ 11? Если да, то как мне реализовать его в этом случае?
Edit: мне пришло в голову, что шаблон также может работать. Каким образом реализация шаблона будет сравниваться с двумя другими?