$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] [mpl] bind help sought
From: Manfred Doudar (manfred.doudar_at_[hidden])
Date: 2010-02-23 05:16:04
On Mon, 22 Feb 2010 20:51:58 -0800
Steven Watanabe <watanabesj_at_[hidden]> wrote:
> Manfred Doudar wrote:
> > Hi,
> >
> >   using namespace boost::mpl;
> >
> >   typedef vector<M, R> vec;
> >
> >   Func f;
> >   Object instance;
> >   for_each<vec>(boost::bind(&Func::operator()<XXX, Object>,
> >                             boost::ref(f),
> >                             instance)
> >                );
> >
> >
> >
> > Question is, what goes in at XXX above?
> >
> > I was thinking something along the lines of:
> >
> >    boost::mpl::bind<boost::mpl::_1>
> >
> > ..but well, that doesn't work.
> >   
> 
> Try passing an argument of type M or R as a parameter:
> 
> template<typename T, typename U>
> void operator()(const T&, U& u) const {
>     T::foo();
> }
> ...
> for_each<vec>(boost::bind(boost::ref(f), _1, instance))
> 
To both Steven & Rutger who answered - a short note of thanks.
I was indeed aware of resloving the problem with the above mentioned
approach, but was hoping for an explicit invocation of some kind without
having to make use of a superfluous tag T in the parameter list.  ..No
matter.
With thanks again to Steven and Rutger.
Cheers,
-- Manfred