【发布时间】:2011-05-28 09:38:59
【问题描述】:
在成员函数部分的示例中:Member functions 我们得到了一个结构体 X:
struct X {
int foo(int);
};
首选语法
boost::function<int (X*, int)> f;
f = &X::foo;
X x;
f(&x, 5);
可移植语法
boost::function2<int, X*, int> f;
f = &X::foo;
X x;
f(&x, 5);
我的问题是:
- 当我的 int foo(int) 只接受一个参数时,为什么我必须添加一个额外的 X* 参数?还有,是不是和使用boost::bind一样,比如:
Person *person = new Person("Tu", 23);
boost::function newFunc2 = boost::bind(&Person::printInfo,person);
- prefer 语法和可移植语法之间有什么区别以及何时使用其中一种而不是另一种?
- 什么是函数对象?是函数指针吗?
【问题讨论】:
标签: c++ boost function-pointers