Boost logo

Boost :

Subject: Re: [boost] [bind][phoenix] unified placeholders, yea or nay?
From: lcaminiti (lorcaminiti_at_[hidden])
Date: 2012-05-27 19:35:15

Eric Niebler-3 wrote
> I'm considering taking on as a side project the unification of the bind
> and phoenix placeholders, a perennial source of confusion and annoyance.

Bind should really not define _1, ... into the unamed namespace (IMO, this
should be fixed in future Boost releases even if it will of course brake
backward compatibility and existing code -- users can easily fix their
existing code with using namespace boost::bind...).

A part from that, why are Bind's placeholder confusing?

> I hesitate before beginning because it necessarily introduces some
> complexity into boost.bind, a very small, simple, and light-weight
> library. In particular, the unification would:
> 1) Cause boost.bind to depend on boost.proto. (I would do what I could
> to keep that dependency as slight as possible.)
> 2) Could not be supported on all platforms; e.g. not on borland or (gcc
> < 4) where the placeholders are actually static inline functions(!).
> (Peter, is this an ODR thing?)
> 3) Would introduce Phoenix behaviors into Bind, insofar as _1 is a
> lambda such that _1(42) evaluates to 42.

Would it also complicate Bind compile-time errors?

> At this point, it's not obvious to me that the benefits outweigh the
> costs. Opinions? Peter, I'd especially like to hear your thoughts.

What are the benefits of the unification?

Thanks a lot.

View this message in context:
Sent from the Boost - Dev mailing list archive at

Boost list run by bdawes at, gregod at, cpdaniel at, john at