$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
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 https://www.reuters.com/article/us-ryanair/ryanair-unveils-new-strategy-be-nice-to-
> 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.
Best
Mike