Как получить в C++ указатель на функцию-член со связанными переменными?
Я хотел бы вызвать функцию g
(из сторонней библиотеки), которая принимает в качестве входных данных указатель на функцию f
, Эта функция указатель таков, что f
Сам принимает некоторые аргументы.
Как моя функция f
зависит от данных, и я не могу передать (ссылку на) эти данные в качестве параметра функции f
потому что мне нужно реализовать f
используя подпись, которая используется в указателе функции, я хотел бы сделать одну из двух вещей:
- воплощать в жизнь
f
как (нестатическая) функция-член класса - реализовать вспомогательную функцию
fHelper
который принимает дополнительные аргументы, а затем создает указатель функции (но не объект функции), который имеет сигнатуру указателя функции, используемого вg
и звонкиfHelper
с дополнительными аргументами, связанными с конкретными значениями.
Третье решение, которое не является ни потокобезопасным, ни приемлемым с точки зрения дизайна, заключается в использовании глобальной переменной.
Я смотрел на boost:bind
а также std::mem_fun
но не понимаю, работают ли эти концепции в этих условиях. Я был бы очень признателен за поучительный ответ и, возможно, некоторую предысторию о том, как обычно обрабатывается этот случай.