【发布时间】:2010-11-22 15:07:02
【问题描述】:
我如何散列(std::tr1::hash 或 boost::hash)一个 c++ 指向成员函数的指针?
例子:
我有几个 bool (Class::*functionPointer)()(非静态)指向类 Class 的几个不同方法,我需要散列这些指向成员函数的指针。
我该怎么做?
另外我如何比较(std::less)那些成员函数指针,以便我可以将它们存储在 std::set 中?
【问题讨论】:
-
通常没有任何理由对指针进行哈希处理,因为它直接指向您要访问的内容。请提供一些代码来说明您所询问的内容。
-
你什么时候会说一个函数指针比另一个函数指针“少”?
-
@bojan:如果比较的唯一目的是将它们存储在排序列表中,则任何确定性排序都可以。例如二进制值。
-
我有一个类,它有一个成员函数指针作为成员变量。我需要将该类存储在 std::set 和 std::hash_set 中,因此它需要该成员函数指针上的哈希和 std::less。
-
除了成员函数指针之外,您的类实例是否在每个字段中都相同?如果没有,那么您不需要将它包含在哈希/比较中,这巧妙地避免了这个问题。
标签: c++ hash function-pointers member-function-pointers