Đoạn mã sau đây khiến cl.exe bị lỗi (MS VS2005).
Tôi đang cố gắng sử dụng boost bind để tạo một hàm cho một cuộc gọi một phương thức của myclass:
#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;
}
Tôi đang làm gì sai?
std::function
đưa ra một lỗi