Boost logo

Boost Users :

From: Rodrigo de Salvo Braz (braz_at_[hidden])
Date: 2004-11-22 05:15:44


Hello,

I am trying to use transform_iterator with a lambda functor, but the
compiler complains that the lambda functor does not contain a type called
'result_type', which the transform_iterator requires.

I would have expected lambda functors to have this type. Any ideas on why
it doesn't?

Here is the code line causing the problem:

return make_transform_iterator(attributes.begin(), bind(&pair<const AttributeType, string>::second, _1));

where attributes is of type map<AttributeType, string>.

Here is the error message:

/usr/local/include/boost-1_32/boost/iterator/transform_iterator.hpp:43: no
type
   named `result_type' in `class

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<std::string std::pair<const AttributeType,
   std::string>::*, 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> > >'

Thanks,

Rodrigo


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