
Andrey Semashev-2 wrote:
IMHO, if we're moving to unified placeholders (which is presumable the ultimate goal), this should be a major change to all involved libraries, namely, bind, lambda and phoenix at least. A backwards compatibility layer is a must for such a change, because the named libraries are the ones most frequently used. Moreover, I'd prefer if the old code compiled without a change by default (i.e. no BOOST_USE_GLOBAL_PLACEHOLDERS macro needed).
I see another way of doing this. Perhaps, we could create a new functional library powered by proto that would accumulate features from bind, lambda and phoenix and release it independently. It could be designed the way we want and be targeted for recent compilers (IOW, drop hacks for ancient compilers). The old libraries would become deprecated, they won't change their interface a bit and will be left for compatibility. Maybe eventually these libraries will degenerate into a thin interface layers to the new library.
I seem to recall a discussion a while back (possibly at the time of the Phoenix review) that mentioned the possibility of making boost::bind call through to phoenix::bind on supporting compilers and using the previous implementation on old/broken ones. That would then avoid the need for seperate placeholders on at least recent compilers. -- View this message in context: http://www.nabble.com/Removing-Bind-placeholders-from-the-global-namespace-t... Sent from the Boost - Dev mailing list archive at Nabble.com.