C++ Boost功能比较
我有一个类,其中包含 boost::function 作为其参数之一。我必须使此类相等具有可比性,但 boost::function 不可具有相等可比性。有一个简单的解决方法可以解决这个问题吗?
谢谢, 戈库尔。
I have a class which contains boost::function as one of its arguments. I have to make this class equality comparable but the boost::function is not equality comparable. Is there a easy workaround for this problem?
Thanks,
Gokul.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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 函子或破坏”实现,让我们有点塞满了。对于这种情况可能有一些蹩脚的解决方法,但我建议要么:
或者
boost::function is not eq_compare because there is good way to handle the fact that many functors are not eq_compare. Here is a bit of insight into it: http://www.boost.org/doc/libs/1_35_0/doc/html/function/faq.html#id690470
Unfortunately, the boosties decided not to provide a policy-based approach which would allow us to select the alternative, i.e. "eq-comparable functors only or bust" implementation, leaving us a bit stuffed here. There might be a couple of crappy workarounds for this situation but I'd suggest to either:
or