То, что я хочу сделать, довольно легко сделать с помощью лямбда-выражений C ++ 0x. Я просто хочу выяснить, как это сделать с помощью bind1st
и bind2nd
.
Мне нужно найти первый элемент i
в векторе ] v
, так что (i-1) / p1 == p2
, где p1 и p2 - предопределенные целые числа.
find_if(v.begin(), v.end(), ???)
Я не могу понять, как сформировать предикат с помощью минус
делит
equal_to
и bind2nd
. Похоже, мне нужна некоторая композиция функций
equal(div(minus(i, 1), p1), p2)
Возможно ли?
Пожалуйста, не предлагайте обходные пути, такие как написание автономной унарной функции или структуры с operator ()
. Меня действительно интересует механика функторов в функционале наряду с bind1st
и bind2nd
. Это не для реального кода, просто для интереса. Спасибо :)