67
以下代碼會導致cl.exe崩潰(MS VS2005)。
我想使用升壓綁定來創建一個函數來調用一個MyClass的的方法:如何在成員函數中使用boost綁定
#include "stdafx.h"
#include <boost/function.hpp>
#include <boost/bind.hpp>
#include <functional>
class myclass {
public:
void fun1() { printf("fun1()\n"); }
void fun2(int i) { printf("fun2(%d)\n", i); }
void testit() {
boost::function<void()> f1(boost::bind(&myclass::fun1, this));
boost::function<void (int)> f2(boost::bind(&myclass::fun2, this)); //fails
f1();
f2(111);
}
};
int main(int argc, char* argv[]) {
myclass mc;
mc.testit();
return 0;
}
我在做什麼錯?
任何機會,你可以幫助這個http://stackoverflow.com/questions/13074756/how-to-avoid-static-member-function-when-using-gsl-with-c?它是相似的,但'std :: function'給出了一個錯誤 – 2012-10-29 04:28:22
謝謝,這有點令人困惑,但你的答案拯救了我的培根! – portforwardpodcast 2014-06-20 02:28:11