Предположим, у меня есть следующий код, который я хочу реорганизовать:
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 я бы реорганизовал этот код в employee(), который принимает указатель на функцию, который выполняет вычисление: общий код в worker(), определенный код, предоставляемый указателем функции.
С С++ 11, следует ли вместо этого использовать лямбда? Если да, то как бы реализовать его в этом случае?
Изменить: мне просто пришло в голову, что шаблон также может работать. Как реализация шаблона сравнивается с двумя другими?