Boost logo

Boost Users :

Subject: Re: [Boost-users] reference to '_1' is ambiguous
From: Peter Dimov (pdimov_at_[hidden])
Date: 2009-03-18 15:00:56


Eric Niebler:
> Peter Dimov wrote:
>> Noah Roberts:
>>> Would be nice if bind() didn't cause this.
>>
>> I can probably get the placeholders out of the global namespace in 1.41.
>>
>>> Are the placeholders going to be in an anonymous namespace when added to
>>> the std lib?
>>
>> No, they're in namespace std::placeholders.
>
> You, Joel de Guzman, Dan Marsden and I should coordinate. We might be able
> to use Proto so that the bind placeholders can be shared with the Phoenix
> placeholders, eliminating this source of confusion once and for all.

Bind can already use any placeholders (and in fact does recognize the Lambda
placeholders). No coordination is needed, just a specialization of
boost::is_placeholder.

The main problem is that all code that relies on the placeholders being
visible will break. A secondary problem I have is that to keep Bind
header-only I (think I) need to move to using inline functions instead of
objects for _K on all compilers. This will consume one release cycle, during
which the global placeholders will be "deprecated". The next release will
remove them from the global namespace.

But if there's a Boost-wide header that defines _K, I can easily make Bind
use it.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net