我想使用成员函数的std::function
并通过返回值提供它。它的语法std::bind(...)
是什么?
class Test{
int move(int x){
return x * Y;
}
std::function<int(int)> getFunc(){
std::function<int(int)> tmp2
std::bind(&Test::move, _1, this);
return tmp2;
}
};
应该为std::bind(&Test::move, this, _1);
。
Lambda是替代项:
std::function<int(int)> tmp2 = [this](int i) { return move(i); };
首先,传递给this
时应更改_1
和std::bind
的位置。其次,Test::move
应该返回int
。
class Test{
int move(int x){
return ...;
}
std::function<int(int)> getFunc(){
using namespace std::placeholders;
std::function<int(int)> tmp2 = std::bind(&Test::move, this, _1);
return tmp2;
}
};