
On 3/17/2011 6:17 PM, Joel de Guzman wrote:
On 3/17/11 5:24 PM, Daniel James wrote:
On 17 March 2011 08:52, Thomas Heller<thom.heller@googlemail.com> wrote:
There are still some unresolved issues. Mainly how to deal with the migration of Boost.Bind, Boost.Lambda and Phoenix V2. There hasn't been any discussion regarding that.
I don't think it'd be a good idea to do anything to bind or lambda in this release. Was there a consensus on replacing them? Personally, I'd like to keep the existing Boost.Bind, even if in a different namespace. I appreciate its relative simplicity and portability.
Bind should not be touched. People rely on Bind esp. those using old compilers. Also, Bind is extremely lightweight with almost zero dependencies. Phoenix cannot get anywhere near that.
Joel is right. The best we can do is make phoenix::bind a drop-in replacement and let people choose. OTOH, it would be very nice if Bind's placeholders were the same as Phoenix's. So it would be worth taking the time to see if we could refactor Proto such that terminals could be defined in a very light-weight way. But I also know that Bind jumps through hoops of fire with the placeholder definitions to support ancient compilers, so this might not be possible. However, if it /were/ possible (and we navigate the tricky proto-domain waters), then I suggestion the placeholders be spun into their own mini-library that can be shared across all the EDSLs in Boost that require placeholders. (Except MPL, where the placeholders are types and not objects.) -- Eric Niebler BoostPro Computing http://www.boostpro.com