添加占位符时遇到了一些问题std::bind我的代码有点大,所以我会坚持要领
#define GETFUNC(a) (std::bind(&app::a, this, std::placeholders::_1))
class button{
button(<other parameters here>, std::function<void(int)>) { ... }
..
std::function<void(int)> onhover;
..
};
class app{
app(){
elements.push_back(buttonPtr( new button(<other parameters>, GETFUNC(onHover) );
..
typedef std::unique_ptr<button> buttonPtr;
std::vector<buttonPtr> elements;
..
void onHover(int i) {}
}
那段代码失败了std::bind(我从错误日志中得到了这么多),但如果我改变它就可以工作:
- 全部
std::function<void(int)>到std::function<void()> onHover(int i)到onHover()std::bind(&app::a, this, std::placeholders::_1)到std::bind(&app::a, this)
关于为什么会发生这种情况以及如何解决它的任何想法?