在成员函数部分的示例: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);
个
我的问题是:
- 为什么我必须把额外的X *参数时,我INT FOO(INT)只有一个参数?另外,是一样使用boost ::绑定,如:
人*人=新的Person( “涂”,23);
boost :: function newFunc2 = boost :: bind(& Person :: printInfo,person);
- 有什么喜欢的语法和便携式语法以及何时使用一个比另一个区别?
- 什么是函数对象?那是函数指针吗?
1.取决于编译器,Visual C++在寄存器'ecx' iirc中传递'this'。 – Xeo 2011-05-28 12:07:32
@Xeo,很好的电话,我不知道 - 我已经更新了答案,并且链接到维基百科中提到它。 – Node 2011-05-28 12:16:51