История изменений
Исправление KennyMinigun, (текущая версия) :
Если у тебя заранее известен обьект, на котором будет вызываться функция, то захвати его лямбдой:
// this - в данном случае захватываемый обьект
auto callback = [this] (int arg) { this->method(arg); };
Если же ты хочешь использовать этот метод на заранее неизвестном объекте (прямо как указатель на метод), то никуда не денешься, нежели как явно передавать объект на котором будет вызван метод твоей std::function. Т.е. смысла использовать std::function в данном случае почти нет.
Исправление KennyMinigun, :
Если у тебя заранее известен обьект, на котором будет вызываться функция, то захвати его лямбдой:
// this - в данном случае захватываемый обьект
auto method = [this] (int arg) { this->method(arg); };
Если же ты хочешь использовать этот метод на заранее неизвестном объекте (прямо как указатель на метод), то никуда не денешься, нежели как явно передавать объект на котором будет вызван метод твоей std::function. Т.е. смысла использовать std::function в данном случае почти нет.
Исправление KennyMinigun, :
Если у тебя заранее известен обьект, на котором будет вызываться функция, то захвати его лямбдой:
// this - в данном случае захватываемый обьект
auto method = [this] (int arv) { this->method(arg); };
Если же ты хочешь использовать этот метод на заранее неизвестном объекте (прямо как указатель на метод), то никуда не денешься, нежели как явно передавать объект на котором будет вызван метод твоей std::function. Т.е. смысла использовать std::function в данном случае почти нет.
Исходная версия KennyMinigun, :
Если у тебя заранее известен обьект, на котором будет вызываться функция, то захвати его лямбдой:
auto method = [this] (/* args */) -> decltype(this->method()) { return this->method(/* args */); };
Если же ты хочешь использовать этот метод на заранее неизвестном объекте (прямо как указатель на метод), то никуда не денешься, нежели как явно передавать объект на котором будет вызван метод твоей std::function. Т.е. смысла использовать std::function в данном случае почти нет.