Основные отличия между классами std::function и std::bind:
- std::function — шаблонный класс стандартной библиотеки, который предоставляет удобную обёртку для простой функции, функтора, метода или лямбда-выражения. oopscenities.net С его помощью можно, например, хранить несколько функций, методов, функторов или лямбда-выражений в векторе. oopscenities.net
- std::bind — шаблонная функция, которая возвращает объект std::function и привязывает к функции набор аргументов. oopscenities.net Например, с её помощью можно создать новый объект функции, который принимает только часть аргументов, или изменить порядок аргументов в функции. stackoverflow.com
Таким образом, std::bind позволяет создавать новые объекты функций на лету, а std::function принимает эти временные объекты функций и привязывает их к переменной. www.educative.io