Boost logo

Boost Users :

Subject: Re: [Boost-users] Lambda and placeholders
From: Sven Bauhan (sven.bauhan_at_[hidden])
Date: 2012-04-02 03:52:38


> namespace ll = boost::lambda;
> ... = std::find_if(..., ll::bind(&Timeslice::contains,
> ll::bind(&LightningSlice::timeslice, ll::_1), time_));
>
> Yes, it's ugly. Unfortunately, you can't really improve on it.
>
> Sebastian
> _______________________________________________

Thanks,

I tried this suggestion:

#include <boost/lambda/bind.hpp>
namespace ll = boost::lambda;

        LightningQueue::const_iterator l
                = std::find_if( m_lightnings.begin(), m_lightnings.end(),
                                bind( &boost::posix_time::time_period::contains,
                                ll::bind( &LightningSlice::timeslice, ll::_1 ), time_
                        ) );

But then I got this error message:

../LightningIndex.cpp: In member function 'weather::LightningSlice
weather::LightningIndex::getLightningSlice(boost::posix_time::ptime)':
../LightningIndex.cpp:40: error: no matching function for call to
'bind(<unresolved overloaded function type>, const
boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<2,
boost::lambda::function_action<2, boost::lambda::detail::unspecified> >,
boost::tuples::tuple<const boost::posix_time::time_period&
(weather::LightningSlice::* const)()const, const
boost::lambda::lambda_functor<boost::lambda::placeholder<1> >,
boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type,
boost::tuples::null_type, boost::tuples::null_type> > >,
boost::posix_time::ptime&)'

This is even more confusion than the first error message.

Greetings, Sven


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net