为什么我们需要 & in 绑定成员函数?
Why we need & in bind member function in boost?
In boost doc:
Binding member functions can be done similarly. A bound member function takes in a pointer or reference to an object as the first argument. For instance, given:
struct xyz
{
void foo(int) const;
};
xyz's foo member function can be bound as:
bind(&xyz::foo, obj, arg1) // obj is an xyz object
为什么我们需要 &xyz::foo,而不仅仅是 xyz::foo?
int f(int a, int b)
{
return a + b;
}
std::cout << bind(f, 1, 2)() << std::endl;
这样,我们就不会使用 &.
地址运算符(即&
( 是获取指向成员函数的指针所必需的。对于非成员函数,它是可选的,因为函数到指针的隐式转换。
指向函数的指针可以使用非成员函数或静态成员函数的地址进行初始化。由于函数到指针的隐式转换,地址运算符是可选的:
相关文章:
- ROS 订阅回调 - 使用 boost::绑定成员函数
- 为什么我们需要 & in 绑定成员函数?
- 如何修改 std::generate 的绑定成员函数的结果
- 如何正确绑定成员函数与 boost::bind
- C2276 '&':对绑定成员函数表达式的非法操作
- 使用带有 boost::optional" 参数与 boost::spirit 绑定成员函数
- C 快速绑定成员功能的方法
- 模板类重载std::绑定成员函数
- 是否可以检测绑定成员函数引用的对象是否被删除或销毁
- 以可变参数方式绑定成员函数
- 传递绑定成员函数
- '&' :对绑定成员函数表达式的非法操作
- 绑定C++成员变量:getter/setter 或原始指针
- 使用boost绑定成员函数
- 具有静态绑定成员函数指针的可变模板的多个专业化
- "&":对绑定成员函数表达式的非法操作。从关键点矢量 OpenCV 获取容量
- 绑定成员函数的地址
- Boost.绑定成员函数并将其发布到io_service
- "!"绑定成员函数表达式的非法操作
- 绑定成员函数