
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