Boost logo

Boost Users :

From: Meryl Silverburgh (silverburgh.meryl_at_[hidden])
Date: 2006-03-15 02:22:48


Need help in understanding boost lambda compile error:

I have this line of code:
where grlpVector is vector<GroupResultListProcessor*>

for_each(grlpVector.begin(), grlpVector.end(),
boost::lambda::bind(&GroupResultListProcessorExecuter::do_process,
this, *_1));

But I get this compile error, can you help me understand what's wrong?

/usr/include/boost/tuple/detail/tuple_basic.hpp: In instantiation of
'boost::tuples::cons<GroupResultListProcessor,
boost::tuples::null_type>':
/usr/include/boost/tuple/detail/tuple_basic.hpp:329: instantiated
from 'boost::tuples::cons<GroupResultListProcessorExecuter* const,
boost::tuples::cons<GroupResultListProcessor,
boost::tuples::null_type> >'
/usr/include/boost/tuple/detail/tuple_basic.hpp:329: instantiated
from 'boost::tuples::cons<void (GroupResultListProcessorExecuter::*
const)(GroupResultListProcessor&),
boost::tuples::cons<GroupResultListProcessorExecuter* const,
boost::tuples::cons<GroupResultListProcessor,
boost::tuples::null_type> > >'
/usr/include/boost/lambda/detail/lambda_functor_base.hpp:151:
instantiated from 'const bool
boost::lambda::detail::has_null_type<boost::tuples::cons<void
(GroupResultListProcessorExecuter::*
const)(GroupResultListProcessor&),
boost::tuples::cons<GroupResultListProcessorExecuter* const,
boost::tuples::cons<GroupResultListProcessor,
boost::tuples::null_type> > > >::value'
/usr/include/boost/lambda/detail/lambda_functor_base.hpp:229:
instantiated from
'boost::lambda::detail::deduce_non_ref_argument_types<boost::tuples::tuple<void
(GroupResultListProcessorExecuter::*
const)(GroupResultListProcessor&), GroupResultListProcessorExecuter*
const, const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::other_action<boost::lambda::contentsof_action>,
boost::tuples::tuple<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::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::tuples::tuple<GroupResultListProcessor*&,
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::tuples::null_type> >'
/usr/include/boost/lambda/detail/lambda_functor_base.hpp:412:
instantiated from
'boost::lambda::lambda_functor_base<boost::lambda::action<3,
boost::lambda::function_action<3, boost::lambda::detail::unspecified>
>, boost::tuples::tuple<void (GroupResultListProcessorExecuter::*
const)(GroupResultListProcessor&), GroupResultListProcessorExecuter*
const, const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::other_action<boost::lambda::contentsof_action>,
boost::tuples::tuple<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::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>
>::sig<boost::tuples::tuple<GroupResultListProcessor*&,
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::tuples::null_type> >'
/usr/lib/gcc/i386-redhat-linux/4.0.2/../../../../include/c++/4.0.2/bits/stl_algo.h:158:
  instantiated from '_Function std::for_each(_InputIterator,
_InputIterator, _Function) [with _InputIterator =
__gnu_cxx::__normal_iterator<GroupResultListProcessor**,
std::vector<GroupResultListProcessor*,
std::allocator<GroupResultListProcessor*> > >, _Function =
boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::action<3,
boost::lambda::function_action<3, boost::lambda::detail::unspecified>
>, boost::tuples::tuple<void (GroupResultListProcessorExecuter::*
const)(GroupResultListProcessor&), GroupResultListProcessorExecuter*
const, const boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::other_action<boost::lambda::contentsof_action>,
boost::tuples::tuple<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::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> > >]'
../GroupResultListProcessorExecutor.cpp:30: instantiated from here
/usr/include/boost/tuple/detail/tuple_basic.hpp:419: error: cannot
declare field 'boost::tuples::cons<GroupResultListProcessor,
boost::tuples::null_type>::head' to be of abstract type
'GroupResultListProcessor'
../GroupResultListProcessor.h:15: note: because the following
virtual functions are pure within 'GroupResultListProcessor':
../GroupResultListProcessor.h:17: note: virtual void
GroupResultListProcessor::process(GroupResultList&)
make: *** [GroupResultListProcessorExecutor.o] Error 1


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