Subject: Re: [boost] Boost.Operators issue: polluting namespace of caller through argument-dependent lookup
From: John M. Dlugosz (mpbecey7gu_at_[hidden])
Date: 2016-01-19 18:43:19
On 1/18/2016 1:11 PM, Andrey Semashev wrote:
> On 2016-01-18 21:03, Daniel Frey wrote:
>>> On 17.01.2016, at 10:51, John M. Dlugosz <mpbecey7gu_at_[hidden]>
>>> The use of make_shared is finding boost::make_shared as well as
>>> std::make_shared. The program doesn't use boost::shared_ptr and
>>> shouldn't need to know about it.
>> This can not be simply ÂfixedÂ as it is quite an old and established
>> interface. What about the people that actually rely on ADL to kick in
>> to find their unqualified call of make_shared?
> Given that there is BOOST_NO_OPERATORS_IN_NAMESPACE, I don't think that the addition of
> the boost namespace to ADL was ever intended. I would rather see this fixed and the code
> that relies on this side effect broken (with the appropriate note in the release notes
> and the advice to use namespace qualification to resolve the problem).
It already varies with the version of Boost! And with the selected headers being pulled
in by other code. So it already is a wild card that might work in some places and not others.
make_shared (or any other pre-standard library) is not related to the Operators feature,
and people shouldn't count on it interacting in an undocumented way. And it doesn't
really: it depends on what else is included.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk