-1
添加一個佔位符,當陶然成有點問題與std::bind
工作 我的代碼是那種大的,所以我就堅持到要領的std ::綁定無法與1個參數
#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
失敗 (那麼多我從error log了),但作品,如果我改變:
- 所有
std::function<void(int)>
到std::function<void()>
onHover(int i)
到onHover()
std::bind(&app::a, this, std::placeholders::_1)
到std::bind(&app::a, this)
上爲什麼出現這種情況,我該如何解決這個問題有什麼想法?
你能描述一下你想用純英語做什麼嗎?什麼是「窗口」?它有一個'onHover'成員嗎?什麼是類型? - 還有,宏使一切都更難以閱讀和調試,可以考慮手動擴展宏,並閱讀它應該看起來如何 –
@DavidRodríguez-dribeas:試圖向我的按鈕添加一些回調(在懸停,onclick等) – user1233963
是不是類的名稱('app')與宏('window')中使用的類名稱不匹配? – Angew