4

我想为像 lower_bound(..., Compare comp) 这样的 STL 算法的“comp”参数提供一个成员函数。comp() 函数访问非静态成员字段,因此它本身必须是非静态成员,但非静态成员函数指针的类型与普通函数指针的类型不同。

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

4

3 回答 3

7

std::mem_fun这是and最常见的用法std::mem_fun_ref。它们是创建调用指定成员函数的函子的模板。TR1 添加了一个std::tr1::bind也有用且更通用的(如果您没有可用的 TR1,则基于Boost::bind)。C++0x 将包含std::bind在标准库中(与 TR1 基本相同)。

于 2010-07-20T04:56:14.850 回答
6

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

您是否愿意详细说明您要尝试做什么的问题?示例代码等?

于 2010-07-20T04:54:53.433 回答
1
#include<tr1/functional>

并使用 mem_fn()

于 2010-07-20T15:14:27.547 回答