std::find_if(values.begin(), values.end(), bind(&SomeClass::getSomeValue, _1) > 0);
std::vector<SomeClass>::iterator iter = std::find_if(values.begin(), values.end(), aux::compose1(std::bind2nd(std::greater<int>(),0), std::mem_fun_ref(&SomeClass::getSomeValue)));
#include <string>#include <vector>#include <algorithm>#include <iostream>#include <boost/bind/bind.hpp>class Person{ std::string name_;public: Person( const std::string& name ) : name_( name ) {} std::string getName() const { return name_; }};int main(){ std::vector<Person> people; people.push_back(Person("Jack")); people.push_back(Person("John")); people.push_back(Person("Martin")); people.push_back(Person("Peter")); std::vector<Person>::iterator iter(std::find_if(people.begin(), people.end(), boost::bind( &Person::getName, _1 ) == "Peter" )); std::cout << iter->getName() << std::endl;}