【发布时间】:2012-07-06 01:23:51
【问题描述】:
boost::bind 为其占位符重载了几个运算符:
为方便起见,
bind产生的函数对象重载了逻辑非运算符!以及关系和逻辑运算符==、!=、<、<=、>、@987654329 @、&&、||。
例如,这允许我将_1 == desired_value 作为谓词传递给 STL 算法。
不幸的是,std::bind 似乎没有重载这些运算符:(
这是为什么呢?
用
std::bind模拟_1 == desired_value有什么好的解决方法?
【问题讨论】:
-
我认为这是因为 C++11 有 lambda,因此我不明白你为什么需要这样的运算符。 (这条评论似乎是一个答案)。
-
@Nawaz
std::bind是 TR1 的一部分,比 C++11 早了 6 年。 -
Fred,但是现在它是
std::的一部分,而不是tr1:: -
您始终可以创建自己的占位符,并为这些占位符重载运算符
标签: c++ boost stl operator-overloading bind