在C++中将成员函数指针"强制转换"为函数指针的最简单方法是什么?

zoo*_*zoo 4 c++ pointers function member

我想为STL算法的"comp"参数提供成员函数,如lower_bound(...,Compare comp).comp()函数访问非静态成员字段,因此它本身必须是非静态成员,但非静态成员函数指针的类型不同于普通函数指针的类型.

解决这个问题的最佳方法是什么?

Jer*_*fin 7

这是最常见的使用std::mem_funstd::mem_fun_ref.它们是创建调用指定成员函数的函子的模板.TR1增加了一个std::tr1::bind也很有用且功能更多的(如果你没有TR1,那就是基于Boost::bind).C++ 0x将包含std::bind在标准库中(与TR1几乎没有变化).


Tha*_*tos 6

听起来你想要类似的东西boost::bind,将成员函数指针绑定到该类的实例.

您是否愿意详细说明您的问题?示例代码等?