3

我有一个包含 boost::function 作为其参数之一的类。我必须使此类相等性具有可比性,但 boost::function 不能具有可比性。这个问题有简单的解决方法吗?

谢谢,戈库尔。

4

1 回答 1

2

boost::function 不是 eq_compare 因为有很好的方法来处理许多仿函数不是 eq_compare 的事实。这是对它的一些见解:http: //www.boost.org/doc/libs/1_35_0/doc/html/function/faq.html#id690470

不幸的是,boosties 决定不提供基于策略的方法来允许我们选择替代方案,即“仅 eq-comparable functors 或 bust”实现,这让我们有点吃不消。对于这种情况,可能有一些糟糕的解决方法,但我建议:

  1. 如果你真的真的需要这个 eq_comparable 的东西,那就完全抛弃 boost::function 并自己动手吧。或者
  2. 看看您的问题是否可以以非常不同的方式解决。例如,很多人使用 function<> 来实现一种事件系统。如果是这种情况,那么你应该看看 boost::signals。
于 2010-07-14T11:26:39.927 回答