【问题标题】:C++ Boost function comparisonC++ Boost 函数比较
【发布时间】:2010-07-14 10:37:37
【问题描述】:

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

谢谢, 悟空。

【问题讨论】:

  • 你使用的是什么版本的 boost?你是如何创建函子的?
  • boost 1.43 - 最新版本

标签: c++ boost-function


【解决方案1】:

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 or bust”实现,这让我们有点吃不消。这种情况可能有几个糟糕的解决方法,但我建议:

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

【讨论】:

  • 我从来没有真正理解为什么,常规函数指针是可比较的,那么为什么你不能比较 boost 函数,在我看来,这似乎是函数指针的包装器?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
  • 2016-05-17
相关资源
最近更新 更多