OOP - это ключевое слово здесь.
http://www.newty.de/fpt/functor.html :
4.1 Что такое функторы?
Функторы являются функциями с состоянием. В C ++ вы можете реализовать их как класс с одним или несколькими частными членами для хранения состояния и с перегруженным оператором () для выполнения функции. Функторы могут инкапсулировать указатели на функции C и C ++ с использованием шаблонов концепций и полиморфизма. Вы можете создать список указателей на функции-члены произвольных классов и вызвать их через один и тот же интерфейс, не беспокоясь об их классе или необходимости указателя на экземпляр. Все функции должны иметь одинаковые возвращаемые типы и вызывающие параметры. Иногда функторы также известны как замыкания. Вы также можете использовать функторы для реализации обратных вызовов.