I have a vector of class Landmark { public: std::string const& getName() const; ... }; I want to do a find_if for a name that I have. something like std::find_if(begin, end, boost::bind(std::equalstd::string(???, name_to_find))); What do I put for the ??? ? Thanks, Tom ----------------------------------------------------------------------- DISCLAIMER: Information contained in this message and/or attachment(s) may contain confidential information of Zetec, Inc. If you have received this transmission in error, please notify the sender by return email. -----------------------------------------------------------------------
--- At Fri, 9 Aug 2002 15:08:06 -0700, Tom Matelich wrote:
I have a vector of
class Landmark { public: std::string const& getName() const; ... };
I want to do a find_if for a name that I have.
something like std::find_if(begin, end, boost::bind(std::equalstd::string(???, name_to_find)));
What do I put for the ??? ?
Nothing. Your done. :-) bind takes a pointer to a function (among other things) as the first parameter. It then calls that function with the parameters you specify. You use _1, etc for parameters that are input to bind. In your case: std::find_if(begin, end, boost::bind(std::equalstd::string, name_to_find, _1))); ...Duane -- "If tyranny and oppression come to this land, it will be in the guise of fighting a foreign enemy." - James Madison
On Friday 09 August 2002 06:08 pm, Tom Matelich wrote:
I have a vector of
class Landmark { public: std::string const& getName() const; ... };
I want to do a find_if for a name that I have.
something like std::find_if(begin, end, boost::bind(std::equalstd::string(???, name_to_find)));
What do I put for the ??? ?
I presume that [begin, end) is an iterator sequence of Landmark instances? Then ??? = boost::bind(&Landmark::getName, _1), meaning that the first parameter to std::equalstd::string::operator() is a call to Landmark::getName where the object parameter (this) is the first argument (_1) to the bind function object. Doug
participants (3)
-
Douglas Gregor
-
Duane Murphy
-
Tom Matelich