Я пытаюсь запустить этот код.Я почти на месте, но я застрял в строке:
_f = std::bind1st(
std::mem_fun(f, x);
Прежде всего, пожалуйста, поймите, что я не хочу менять код, но конструктор .Зачем?Потому что я хочу учиться.В конце концов я хочу написать класс-оболочку Func
, который может обрабатывать свободные функции и функции-члены одновременно, таким же образом.
Итак, что я должен указать в качестве первого аргумента внутри std::mem_func()
-Call ???Я перепробовал множество вещей.
Возможно, это дубликат, но я не знаю, как искать эту проблему.Мне не хватает словарного запаса.Если кто-то может указать на учебник или что-то, что поможет мне выразить эту проблему, я был бы также признателен.
Вот полный пример кода:
#include <boost/function.hpp>
#include <iostream>
struct X
{
int foo(int i)
{
return i;
};
};
class Func
{
public:
Func(X *x, int (X::* f) (int))
{
_f = std::bind1st(
std::mem_fun(f, x);
std::cout << _f(5); // Call x.foo(5)
};
private:
boost::function<int (int)> _f;
};
int main()
{
X x;
Func func(&x, &X::foo);
return 0;
}
Заранее спасибо.