vector<A> va;
vector<A>::const_iterator v0 = find_if(
va.begin()
, va.end()
, boost::bind(&A::someFun, _1) == 42 );
vector<A>::const_iterator v1 = find_if(
va.begin()
, va.end()
, boost::bind(&A::_value, _1) == 42 );
В случае, если вам do необходимо составить выражения связывания (например, используя functor
, который нельзя выразить с помощью операторов, поддерживаемых boost::bind
):
vector<A>::const_iterator v1 = find_if(
va.begin()
, va.end()
, boost::bind(functor(), boost::bind(&A::someFun, _1), 42) );
, что приводит к вызову functor::operator()
со следующими аргументами: результат вызова члена по аргументу в выражении связывания и 42.