On 18 May 2015 at 21:12, Andrey Semashev wrote:
The defining characteristic of the Douglas universe is that the standard library now contains the many essential components (tuple, shared_ptr, function, bind, type traits, threads, atomics, and so on) that were previously only supplied by Boost.
All that doesn't make Boost obsolete, which is how Niall phrased it.
I think a majority of Boost users, rather than developers, will disagree. I worked recently on a C++ 11 code base which had mixed boost::future and std::future due to no better choice available. It was a royal pain in the ass to deal with (lots of std::async usage to work around the incommensurability).
Even for components that are in STL11, I'm still cautious about porting my code from Boost to STL11 because different implementations have different quality and because of that the code breaks or performance suffers.
This is *exactly* the point. It tests your code's assumptions about how a STL implementation works and forces you to refactor those assumptions.
Of course, most of the time the transition goes smoothly and most issues can be worked around, but nevertheless in portable code Boost is still preferable.
You are arguing in favour of a monoculture.
It reminds me of the days when STLport was active - I would often use it instead of the compiler-supplied STL on all platforms for the same reasons.
With very recent STLs it is usually Boost which is of inferior quality. The three main STLs get *vastly* more testing than Boost does, in orders of magnitude more (perhaps Jonathan, Howard or Stephan can chime in on just what automated testing they routinely subject their STLs to). They have also been security audited either partially or fully. Niall -- ned Productions Limited Consulting http://www.nedproductions.biz/ http://ie.linkedin.com/in/nialldouglas/