我想为STL算法的“comp”参数提供成员函数,如lower_bound(...,Compare comp)。 comp()函数访问非静态成员字段,因此它本身必须是非静态成员,但非静态成员函数指针的类型不同于普通函数指针的类型。
解决此问题的最佳方法是什么?
答案 0 :(得分:7)
这是std::mem_fun
和std::mem_fun_ref
的最常见用法。它们是创建调用指定成员函数的函子的模板。 TR1添加std::tr1::bind
,它也很有用且功能更多(如果你没有TR1,那么它基于Boost::bind
)。 C ++ 0x将在标准库中包含std::bind
(与TR1几乎没有变化)。
答案 1 :(得分:6)
听起来你想要类似boost::bind
之类的东西,将成员函数指针绑定到该类的实例。
您是否愿意详细说明您的问题?示例代码等?
答案 2 :(得分:1)
#include<tr1/functional>
并使用mem_fn()