我需要將一個方法綁定到一個函數回調中,除非此代碼段不合法,如demote-boostfunction-to-a-plain-function-pointer中所述。來自綁定方法的原始函數指針
獲取此行爲的最簡單方法是什麼?
struct C {
void m(int x) {
(void) x;
_asm int 3;
}};
typedef void (*cb_t)(int);
int main() {
C c;
boost::function<void (int x)> cb = boost::bind(&C::m, &c, _1);
cb_t raw_cb = *cb.target<cb_t>(); //null dereference
raw_cb(1);
return 0;
}
動態代碼gen肯定太複雜。尋找儘可能簡單。 – 2009-02-05 15:55:17
第一種方法是我所做的,看到我的回覆..就是你在說什麼? – 2009-02-05 15:55:50
我想它會是,但是我想我無論如何都會把它扔出去。 – Eclipse 2009-02-05 16:09:35