Subject: Re: [boost] C++03 / C++11 compatibility question for compiled libraries
From: Glen Fernandes (glen.fernandes_at_[hidden])
Date: 2018-02-18 13:56:22
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.
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
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.
After a while, certain projects that dropped compatibility still chose to
use Boost instead of the corresponding [now fixed] standard library
facilities, just operating under the assumption that Boost would provide
a higher quality of implementation, and more rapid rate of maintenance.