
Hi All I am trying to use boost::lambda using logicat operator. I would like to use it in a STL std::find_if call. What I receive is always the same error error: no match for ‘operator==’ in ‘boost::lambda::<unnamed>::_1 == 13’ Do you know what I am doing wrong? Thanks AFG using namespace boost::assign; int main( int argc, char** argv ){ std::vector< int > v; v += 12,13,14,15; bool found_tmp = false; boost::lambda::var_type< bool >::type found( boost::lambda::var(found_tmp) ); std::find_if( v.begin(), v.end(), ( found = ( boost::lambda::_1 == 13 ), return found ) ); }

AMDG Conoscenza Silente wrote:
I am trying to use boost::lambda using logicat operator. I would like to use it in a STL std::find_if call.
What I receive is always the same error error: no match for ‘operator==’ in ‘boost::lambda::<unnamed>::_1 == 13’
Do you know what I am doing wrong? Thanks AFG
using namespace boost::assign;
int main( int argc, char** argv ){
std::vector< int > v; v += 12,13,14,15;
bool found_tmp = false; boost::lambda::var_type< bool >::type found( boost::lambda::var(found_tmp) );
std::find_if( v.begin(), v.end(), ( found = ( boost::lambda::_1 == 13 ), return found ) ); }
Don't try to return found inside the lambda expression. Try bool found = std::find_if(v.begin(), v.end(), boost::lambda::_1 == 13) != v.end(); In Christ, Steven Watanabe

Thanks a lot!
Afg
On Wed, Apr 7, 2010 at 5:22 PM, Steven Watanabe
AMDG
Conoscenza Silente wrote:
I am trying to use boost::lambda using logicat operator. I would like to use it in a STL std::find_if call.
What I receive is always the same error error: no match for ‘operator==’ in ‘boost::lambda::<unnamed>::_1 == 13’
Do you know what I am doing wrong? Thanks AFG
using namespace boost::assign;
int main( int argc, char** argv ){
std::vector< int > v; v += 12,13,14,15;
bool found_tmp = false; boost::lambda::var_type< bool >::type found( boost::lambda::var(found_tmp) );
std::find_if( v.begin(), v.end(), ( found = ( boost::lambda::_1 == 13 ), return found ) ); }
Don't try to return found inside the lambda expression.
Try
bool found = std::find_if(v.begin(), v.end(), boost::lambda::_1 == 13) != v.end();
In Christ, Steven Watanabe
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Hi Steven
sorry to bother you again..but the code doesn't work...I didn't try it
yesterday when you replied..sorrry for this!
I read in the documentation that we need some short-circuiting for logical
operators..
On Wed, Apr 7, 2010 at 5:22 PM, Steven Watanabe
AMDG
Conoscenza Silente wrote:
I am trying to use boost::lambda using logicat operator. I would like to use it in a STL std::find_if call.
What I receive is always the same error error: no match for ‘operator==’ in ‘boost::lambda::<unnamed>::_1 == 13’
Do you know what I am doing wrong? Thanks AFG
using namespace boost::assign;
int main( int argc, char** argv ){
std::vector< int > v; v += 12,13,14,15;
bool found_tmp = false; boost::lambda::var_type< bool >::type found( boost::lambda::var(found_tmp) );
std::find_if( v.begin(), v.end(), ( found = ( boost::lambda::_1 == 13 ), return found ) ); }
Don't try to return found inside the lambda expression.
Try
bool found = std::find_if(v.begin(), v.end(), boost::lambda::_1 == 13) != v.end();
In Christ, Steven Watanabe
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

...auch..I figure it out ..I was missing the top header #include "boost/lambda/lambda.hpp"... Thanks again Mn On Thu, Apr 8, 2010 at 2:47 PM, Conoscenza Silente < abruzzoforteegentile@gmail.com> wrote:
Hi Steven sorry to bother you again..but the code doesn't work...I didn't try it yesterday when you replied..sorrry for this! I read in the documentation that we need some short-circuiting for logical operators..
On Wed, Apr 7, 2010 at 5:22 PM, Steven Watanabe
wrote: AMDG
Conoscenza Silente wrote:
I am trying to use boost::lambda using logicat operator. I would like to use it in a STL std::find_if call.
What I receive is always the same error error: no match for ‘operator==’ in ‘boost::lambda::<unnamed>::_1 == 13’
Do you know what I am doing wrong? Thanks AFG
using namespace boost::assign;
int main( int argc, char** argv ){
std::vector< int > v; v += 12,13,14,15;
bool found_tmp = false; boost::lambda::var_type< bool >::type found( boost::lambda::var(found_tmp) );
std::find_if( v.begin(), v.end(), ( found = ( boost::lambda::_1 == 13 ), return found ) ); }
Don't try to return found inside the lambda expression.
Try
bool found = std::find_if(v.begin(), v.end(), boost::lambda::_1 == 13) != v.end();
In Christ, Steven Watanabe
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Conoscenza Silente
-
Steven Watanabe