Задать вопрос
kachsheev
@kachsheev
C++ one love

Можно ли передавать в качестве параметра шаблона указатель на функцию?

Недавно начал разбираться с шаблонами, и тут же возник этот вопрос.
С нестатическими методами классов все понятно, тут оказалось проще, чем думал:
template<class Obj, void*(Obj::*publicMethod)(void*))>
func(Obj* pObj, void* arg)
{
    return pObj->publicMethod(arg);
}

А как нечто подобное можно "провернуть" с обычными функциями? И возможно ли?
Заранее всем спасибо за ответ.
  • Вопрос задан
  • 2847 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
AxisPod
@AxisPod
Используя typedef можно.
ideone.com/tzKAng

Но не стоит этого делать :) В данном случае на каждую пробрасываемую функцию будет генериться свой код. Во вторых тут уже никак не прокинуть std::function, с лямбдами тоже ничего скорее всего не выйдет, про std::bind вообще молчу.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@DancingOnWater
Эм.
std::function
std::bind
Лямбда-функции
Классические указатели на функцию.
Изучать до просветления
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы