On 10/13/2016 11:49 AM, Chris Glover wrote:
On Thu, 13 Oct 2016 at 10:32 Peter Dimov
wrote: Edward Diener wrote:
The basic issue with a Boost library that allows one to switch between Boost and standard components is this: the usual motivation for using a standard component when available is to avoid a dependency on Boost. But if you don't have Boost, you also don't have the Boost library that would allow you to switch.
You quoted me for the above but it should be Peter Dimov. I did author the OP.
There are two other motivations I've run into in the wild.
a. To depend on less of boost for compile time reasons. The standard library equivalents on a given platform typically compile faster than the boost equivalents because they have less machinery thanks to only having to worry about a single platform. I say typically because it's not this simple since boost headers can be included in a more piecemeal fashion which can be used to optimize, but in practice, it holds.
b. Some platforms don't have a boost implementation of things like threads, so its useful to be able to use the vendor supplied std versions in those cases.
As an adjunct to your second point some compilers don't even support C++ standard versions of Boost equivalent libraries even when compiling in C++11 mode. When I created cxx_dual it was not so much because I thought that a Boost distribution was an unwanted burden for programmers or programming groups to have on their hard disks, but more because I thought that programmers would not want to use a Boost library if its C++ standard equivalent library was available to be used.