Boost logo

Boost :

Subject: Re: [boost] A possible date for dropping c++03 support
From: Alexander Grund (alexander.grund_at_[hidden])
Date: 2018-08-27 19:09:37

To be a bit more constructive with this:

The switch to C++11 should mean that the default boost build will be
compiled in C++11+ (this looks strange, what I mean is: Use no compiler
switch as before, unless the compiler would default to C++03 in which
case pass -std=c++11)

The reason for this is quite simple: ABI compatibility. This is a major
bummer as you cannot e.g. mix std::string in C++03/11. Most projects (I
assume) now start with at least C++11 and I think you can in most cases
mix C++11 and C++14 (and maybe even more), at least more easily than
C++03 with anything newer.
And lastly: Yes you can #ifdef for C++11 features. But that increases
maintenance costs. With C++11 and up as the minimum to support, such
things will be a lot less.

But I also want to highlight that "we" (some of the projects I'm working
on) are using Boost BECAUSE of its C++03 compatibility. If some don't
want or cannot switch to C++11 and up they can rely on Boost bringing a
lot of functionality in. I've seen a lot of codes with something like
`namespace myStd{ #if C++11 using namespace std; #else using namespace
boost }` which did work quite well to support both standards downstream
or midstream (libraries using boost)
Having said that: 2020 sounds like a reasonable date. Enough time for
preparation and migration.

- Alex

PS: As HPC Systems came up: They usually count in decades. GCC 4.8 was
released in 2013, so rule of thumb would be that at about 2023 everyone
is using GCC 4.8+. But you can also look for RHEL support
( RHEL 7 uses GCC 4.8 where
RHEL 6 is supported till end of 2020 (not counting extended support)

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