Subject: Re: [boost] [range] #11202: boost.sort header conflicts with boost.range header
From: Steven Ross (spreadsort_at_[hidden])
Date: 2018-09-07 22:07:32
On Mon, Sep 3, 2018 at 10:09 AM degski via Boost <boost_at_[hidden]> wrote:
> On Mon, 3 Sep 2018 at 16:21, Peter Dimov via Boost <boost_at_[hidden]>
> > Edward Diener wrote:
> > > Although it is discouraged I think allowing function, template, and
> > class
> > > names directly in the boost namespace should be allowed when those names
> > > mimic std:: names, but with Boost functionality. I think Boost should
> > > avoid as much as possible using namespace names which are the same as
> > > std:: functions, templates, and classes.
> > This is impractical. New names appear in std:: every three years, it's not
> > possible to predict in advance whether a library name will match a
> > standard
> > identifier. It worked in the past when C++98 was all we had, it doesn't
> > work
> > now.
> I think that as hardly any Boost library that was adopted in the standard
> actually complies (sometimes more, sometimes less and sometimes just
> different) with the standard, the boost namespace should be enough warning
> that we are talking about something else than whatever is in the standard.
> So boost should simply do what it thinks is best from its perspective,
Right. It would be ridiculous to rename an entire library because of
a single using declaration that conflicts with the boost namespace
policy, and basing things on the contents of std:: is silly; how many
people do both "using boost" and "using std"? Such broad using
declarations hide what people are actually using. Removing the using
range::sort is simple and will only require people specifically using
it to specify a longer name. I'm not advocating eliminating all the
using declarations in the boost namespace range has.