мм... ну я просто не привык юзать то в чем нет сразу необходимости...
второй ответ Only use std::function if you really need a systematic way of organizing a heterogeneous collection of callable entities, such as functions, functors, capturing lambdas and bind expressions.
std::function вроде как проще чем сишные указатели на функции, да ещё и лямбды жрёт если надо, но выбор за тобой