Да, с bind хорошо. А вот этот сам "объект-функтор" - он "физически" существует, или это темплейт-подстава? (наверное подстава). Напр нет С++ 11, как самостоятельно получить тот же ф-ционал? (просто с целью уяснить)
Делегаты наподобие std::function можно завелосипедить самостоятельно.
Это не сложно.
Некоторое время назад, я изготавливал собственные велосипеды для с++03.
Только у меня использовалась связка: динамика и статика.
Статика работает по такому же принципу, что и std::function.
Скорость вызова - такая же.
Скорость бинда на порядок (в десять раз) быстрее, чем у стандартного аналога.
Динамика работает на два порядка медленнее (в 100 раз дольше).
Дизайн такой:
TConnector<R(int)> tcon(obj, &Some::Method);
//--- обратите внимание: динамический делегат не является продуктом шаблона
Connector con(obj, &Some::Method);
Суть динамического делегата в том, что не являясь продуктом шаблона, такие делегаты можно хранить в одном массиве, при этом нацеливать их можно куда угодно.
Это делает динамический делегат очень удобным и быстрым решением, когда в статике ещё не известно на что придется нацеливаться делегату.
Если вам это интересно, то мы можем подробно разобрать рецепт изготовления в рамка с++03.