boost::bind失败
class Point
{
public:
Point(int a = 0, int b = 0):x(a),y(b){}
inline void Print(int val ) const
{
cout<<" "<<x<<" "<<y<<endl;
}
private:
int x;
int y;
};
int main()
{
vector<Point>v(10);
bind(&Point::Print,_1,_2)(5556); //为什么不能编译?
return 0;
}
按照boost bind的用法,有时成员函数指针,那么 _1是必须的, 由于成员函数有参数,所以
还需要一个占位符,所以有了_2 ,由于我要传参数,所以有了(5556)
结果错误
[解决办法]
少传了个参数
bind( &Point::Print , _1, _2 )( (Point*)0 , 5556 );