Boost logo

Boost :

From: Powell, Gary (powellg_at_[hidden])
Date: 2004-03-03 18:27:00


>> It sure would've been nice to be able to write _2.count, or count(_2), or
>> _2.count(), but we can't, so we bind(). ;-) The regular syntax has its
>> advantages, and the initial "member pointer first" surprise is a one-time
>> adjustment.

>It's an issue of how far the language is, mentally, from the domain
>abstraction it represents.

> _2.member(&X::count)

>maps more directly to

> _2.count

>than

> bind(&X::count,_2)

>does. For me.
>Dave Abrahams

Ahhhh, Now I understand what you want. That's no problem at all. I thought you wanted to be able to do this,

vector<X *> xs

   unsigned long n = accumulate(xs.begin(),
                                xs,end(),
                                0UL,
                                _1 + _2->count );

where the operator->() of the class LamdaPlaceHolder<2>, returns a lambda object that has a member pointer to "count". Hence my confusion about your earlier email.

  Yours,
  -Gary-


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk