Библиотека Boost.Function содержит семейство шаблонов классов, которые являются обертками функциональных объектов. Это понятие похоже на обобщенный обратный вызов. Он разделяет функции с указателями функций в том, что оба определяют интерфейс вызова (например, функцию, принимающую два целочисленных аргумента и возвращающую значение с плавающей точкой), через которую можно вызвать некоторую реализацию, и реализация, которая вызывается, может изменяться в течение всего курса программы.
Как правило, любое место, в котором указатель функции будет использоваться для отсрочки вызова или обратного вызова, увеличивается. Функция может быть использована для обеспечения большей гибкости пользователя при реализации цели. Цели могут быть любыми «совместимыми» функциональными объектами (или указателями функций), то есть аргументами интерфейса, обозначенными Boost. Функция может быть преобразована в аргументы объекта целевой функции.