Каков наилучший способ передачи параметра функции обратного вызова в С++?
Я думал просто использовать шаблоны, например:
template <typename Function>
void DoSomething(Function callback)
Это способ, используемый, например, в std::sort
для объекта функции сравнения.
Как насчет передачи с помощью &&
? Например:.
template <typename Function>
void DoSomething(Function&& callback)
Каковы плюсы и минусы этих двух методов, и почему STL использует первое, например, в std::sort
?