Subject: Re: [boost] C++03 / C++11 compatibility question for compiled libraries
From: Robert Ramey (ramey_at_[hidden])
Date: 2018-02-17 18:55:59
On 2/17/18 9:50 AM, Vinnie Falco via Boost wrote:
> Coming into this thread late, but this is of relevance:
> 66% regularly use C++11
> 46% don't plan to upgrade to a new C++ standard
> 21% regularly use C++03
> 41% mostly use C++11
> <5% mostly use C++03
> <3% mostly use C++98
> I think investment in C++03 yields significantly diminished returns.
> And C++11 is simply the most popular version.
> In light of this information, I would drop support for C++03 and
> require C++11 going forward.
What does "drop support" mean?
a) libraries should fail to compile with C++03? Any library which does
so should be considered "broken" in some sense?
b) libraries should/must be implemented in C++11(+?)? Any library which
isn't should/would be considered "broken"
c) libraries should/must be compilable with C++11(+?)? Any libraries
which don't would be considered broken.
Currently boost only requires that libraries be consistent with the
latest current standard - which would be C++17 now. So technically any
library which doesn't compile with a standards conforming compiler
would/should be considered broken. As it turns out, this doesn't isn't
really much of a burden. The serialization library, first added to
boost in (2004?) still functions with the latest standard with a little
help from boost/config.hpp. Once in a while something breaks when a new
compiler standard comes out. So far maintaining compatibility with the
latest standard only requires an occasional trivial tweak to eliminate a
a compile time error. C++ is good that way. Oh - and btw - still
functions as well (or better) than it ever did with C++03. So from my
standpoint the correct answer is c) And the current situation isn't
broken and doesn't need any kind of fix.