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 year. 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. Glen