Функция привязки C++ для использования в качестве аргумента другой функции

У меня есть функция, которая требует указатель на функцию в качестве аргумента:

int func(int a, int (*b)(int, int))
{
    return b(a,1);
}

Теперь я хочу использовать некую функцию с тремя аргументами в этом function:

int c(int, int, int)
{
    // ...
}

Как связать первый аргумент cтак, чтобы я мог сделать:

int i = func(10, c_bound);

Я искал std::bind1st, но я похоже не могу разобраться. Он не возвращает указатель на функцию, верно? У меня есть полная свобода адаптировать func, так что возможны любые изменения подхода. Хотя я хотел бы, чтобы пользователь моего кода мог определять свои собственные c...

обратите внимание, что приведенное выше является жестоким упрощением реальных функций, которые я использую.

К сожалению, для проекта требуется C++98.

7
задан romeovs 21 May 2012 в 20:34
поделиться