template <class T> struct greater : binary_function <T,T,bool> {
bool operator() (const T& x, const T& y) const
{return x>y;}
};
template <class T> struct logical_and : binary_function <T,T,bool> {
bool operator() (const T& x, const T& y) const
{return x&&y;}
};
// (i > 5 && i <=10)
countBoost = std::count_if(vecInts.begin(), vecInts.end(),
boost::bind(std::logical_and<bool>(),
^^^^ // ???? Why ????
boost::bind(std::greater<int>(), _1, 5),
boost::bind(std::less_equal<int>(), _1, 10))
);
less_equal` `のstd :: greater`または`のstd ::の種類が何であるか、パスを入力T
std::logical_and<T>
ためには、機能operator()
のパスのパラメータのタイプです。上記のコードが与えられた場合、std::greater
のタイプはbool
であり、返される値はoperator()
です。は私の理解に基づいて
これは間違いありませんか?
はブーストバインダーは、あなたが期待するかもしれないものよりも少し魔法を行い、あなたに