This little piece of code,
#include <algorithm>
#include <functional>
template <typename InputIterator, typename Predicate>
inline bool if_all( InputIterator first, InputIterator last, Predicate predicate )
{
return std :: find_if( first, last, std :: not1( predicate ) ) == last;
}
#include <vector>
#include "boost/lambda/lambda.hpp"
int main( )
{
using namespace boost :: lambda;
std :: vector<int> v;
if_all( v.begin( ), v.end( ), _1 == 3 );
return 0;
}
Gives a compiler error, which I think tells me that my lambda expression, _1 == 3
does not provide the argument_type typedef. I thought lambda expressions were
careful to to do this. What am I doing wrong?
Thanks, Rob.
--
ACCU - Professionalism in programming - http://www.accu.org