On Sun, Feb 18, 2018 at 2:56 PM, Glen Fernandes via Boost
Olaf van der Spek wrote:
Glen Fernandes wrote:
Before I became a contributor to Boost, and before I became a Boost library author, I was a user of Boost at Microsoft. Even as late as 2014 when I left the company, those projects depended on Boost for C++03 support. (In fact, at least one of the projects only dropped C++03 support as late as 2016).
Where did the C++03 support requirement come from though, an old compiler? Even VS 2010 knows some C++11 stuff.
Supporting teams that were still on older compilers was the motivation, yes.
I'm curious, what'd be the oldest compiler in use (there) anno 2018 and why? MS has made a lot of progress in 2015 and 2017 IMO.
Boost was upgraded more frequently than upgrading to a newer compiler (even though in this particular case, the compiler was developed within the same company). For that project I referenced which dropped C++03 support in 2016, they also dropped VC10 support in the same year.
What compiler did they switch to?
Those projects came to depend on the reliability of Boost for its implementation of standard library facilities that were otherwise defective in VC that wouldn't be fixed until the next major release of the compiler, while Boost releases were every few months.
Even trivial standard library things like std::ref, std::addressof, std::unique_ptr::~unique_ptr (wrong order of operations in VC10, fixed in VC11), std::align (wrong return value in VC11, fixed in VC12), std::call_once (was 1500 times slower than InitOnceExecuteOnce, fixed in VC14), the list went on.
Makes sense. -- Olaf