Subject: Re: [boost] [bind][phoenix] unified placeholders, yea or nay?
From: Thomas Klimpel (Thomas.Klimpel_at_[hidden])
Date: 2012-05-28 09:34:29


Eric Niebler wrote:
> 1) Cause boost.bind to depend on boost.proto. (I would do what I
> could to keep that dependency as slight as possible.)

Currently, Boost.Bind works on IBM XL C/C++ (formerly vacpp for visual age c++), while Boost.Proto does not. To be frank, the issue is that the name-lookup for templates of vacpp was never standard compliant, and IBM XL C/C++ just continued that "tradition", even after they started to add C++11 features.

A single instance of such a name lookup problem is usually easy to "fix", but I can fully understand every developer that doesn't want to "fix" many places in his code for a non-compliant compiler to which he usually doesn't even have access.

> 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?)

>From a technical point of view, it should be possible to still support Boost.Bind on vacpp (IBM XL C/C++) . If you make the proposed change, could you ensure to fix all name lookup problems (for vacpp) in the parts of Boost.Proto on which Boost.Bind would depend? (Both IBM XL C/C++ for AIX, V12.1 and IBM XL C/C++ Enterprise Edition, V10.1 are part of the regular regression test runners for trunk, both still using vacpp as name)

Regards,
Thomas