Boost logo

Boost :

Subject: Re: [boost] Ping to the admins (was Re: Boost.Operators issue: polluting namespace of caller through argument-dependent lookup)
From: Daniel Frey (d.frey_at_[hidden])
Date: 2016-02-17 13:20:18


> On 17.02.2016, at 19:05, Andrey Semashev <andrey.semashev_at_[hidden]> wrote:
>
> On 2016-02-17 20:57, Daniel Frey wrote:
>>
>> On the topic of fixing the issue reported: I realize that
>> is_chained_base is actually a PITA when you try to add another
>> namespace around the operator templates. I’ll have to think of a
>> solution. Just a heads up for others: is_chained_base was placed in
>> ::boost, not ::boost::detail. I assume this is an oversight as the
>> documentation does not mention it and a comment in the source is
>> implying that it should actually should have been placed in
>> ::boost::detail. If anyone ever used it as part of the public
>> interface, please speak up now! :)
>
> Not sure about the purpose of is_chained_base, but might I suggest avoid moving it into boost::detail. Bringing in 'boost::detail' into ADL is almost as bad as bringing in 'boost'. This also concerns other types that are used in template parameters of operator base classes.

I wasn’t planning on moving it to boost::detail, I will probably rename boost::detail to boost::operators_impl (within operators.hpp) anyways for the reasons you mentioned. I was only wondering if a can assume is_chained_base to be an implementation detail or if anyone thought that it’s part of the public interface.




Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk