我需要将一个方法绑定到一个函数回调中,除非此代码段不合法,如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