Boost logo

Boost :

Subject: Re: [boost] Boost.Algorithms organization question
From: Stewart, Robert (Robert.Stewart_at_[hidden])
Date: 2011-12-14 13:20:49

Vicente Botet wrote:
> Marshall Clow-2 wrote
> >
> > So, while I'm waiting for my review result, I've been
> > implementing the new algorithms that were to the standard
> > library for C++11 (at least the ones that don't require the
> > new language features)


> > (and, of course, Boost.Range versions wherever appropriate)

Very nice.

> IMO, the Boost.Range versions shouldn't go into the c++11
> file.


> > Should these all go into a "c++11" subdirectory? If so,
> > should I create a "c++11.hpp" header file that includes all
> > of them, so that users can just
> > #include <boost/algorithm/C++11.hpp>
> > and get all the C++11 algorithms?

The special characters in the filename could be an issue, even today, couldn't they?

> > Alternately, should they just live in boost/algorithm ?
> I would create a std_2011.hpp file.

I didn't see value in this idea at first, but if the following idea is used, then it makes sense.

> In addition if this is not too much work I will find very
> useful to have a kind of C++11 standard that uses std instead
> of boost as it was done for TR1;
> boost/std_2011/algorithm
> We could do this way for all the standard files for which Boost
> provides a c++11 compliant implementation or a c++03 emulation.

Whether the directory is std_2011 or c++11 or C++11 doesn't matter too much, other than portability. However, using namespace std is handy, but it might cause ODR issues for platforms that provide the algorithms.

Without providing everything from C++11, that header would be a lie. That is, if you provide a file named algorithm in such a directory, it should contain everything from the standard, shouldn't it? Otherwise, we'd use namespace boost and expect less certain coverage.

Even if you go that route, I'd think there should be versions available in namespace boost that support ranges.

Rob Stewart robert.stewart_at_[hidden]
Software Engineer using std::disclaimer;
Dev Tools & Components
Susquehanna International Group, LLP


IMPORTANT: The information contained in this email and/or its attachments is confidential. If you are not the intended recipient, please notify the sender immediately by reply and immediately delete this message and all its attachments. Any review, use, reproduction, disclosure or dissemination of this message or any attachment by an unintended recipient is strictly prohibited. Neither this message nor any attachment is intended as or should be construed as an offer, solicitation or recommendation to buy or sell any security or other financial instrument. Neither the sender, his or her employer nor any of their respective affiliates makes any warranties as to the completeness or accuracy of any of the information contained herein or that this message or any of its attachments is free of viruses.

Boost list run by bdawes at, gregod at, cpdaniel at, john at