Boost logo

Boost :

Subject: Re: [boost] [parameter] Go C++11 and above only, or keep C++03 support?
From: Mike Dev (mike.dev_at_[hidden])
Date: 2018-11-05 13:05:39

> -----Original Message-----
> From: Boost <boost-bounces_at_[hidden]> On Behalf Of Paul A. Bristow via Boost
> Sent: Monday, November 5, 2018 1:26 PM
> My view is that it is up to you to decide (but asking for views is good too).
> If it is not too difficult to make it continue to be C++03 compatible and yet allow C++11
> (or higher) improvements then you should
> do this.
> For example, if you can easily write
> #ifdef BOOST_NO_C11_feature
> do the current C++03 stuff (even full function definition)
> #else
> do the enhanced version
> #endif
> then you should do so, in order to avoid, as RyanAir CEO Michael O'Leary put it
> "We should try to eliminate things that unnecessarily piss people off,"
> (See
> customers-idUSBRE98J0DF20130920 for sordid
> details)

Just saying.

#ifdef BOOST_NO_C11_feature

can become extremely annoying for the user, because you effectively have to make sure that
all translation units including that header have to be compiled with the same c++
standard setting (yes, it isn't actually necessary when you are careful, but the complexity
and testing overhead will probably negate much of the advantage you gain by using c++11
features instead of 03 workarounds).

> but if this proves difficult (and trying it may be the only way to find out) then you
> should announce that it will require some
> C++11 feature one release ahead of the change.

I'd give a two release heads up (Announce the change in 1.69, put an compilation warning in 1.70 and then start using
the c++11 features in 1.71).

Although there was tentatively agreement on the ML that c++03 support should be dropped
on a general boost-wide level and that that would also mean that maintainers can drop their individual c++03 support
without prior announcement, this has not yet become official policy
or widely announced, so I'd tread carefully here.



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