Paul A. Bristow wrote:
It feels like either of us is living in a parallel universe, really.
+1 - and I'm not in the Douglas one either :-(
Compiler and language changes are continuous, not strictly quantizable, and so Boost must continue to track changes as is has from the start. C++ 11/14 will be followed by C++17 and C++2z ...
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. In the pre-Douglas universe, you (the library author) had to rely on their Boost implementation, which coupled you to other Boost components, sometimes to their specific versions. In the Douglas universe, you can use the standard library for all that, allowing your library to be independent of the rest of Boost. Even if you use, say, boost::shared_ptr on C++03 compilers, since your library uses the interface of std::shared_ptr on C++11, this is a certain guarantee that it does not depend on anything specific to a particular version of boost::shared_ptr. As long as boost::shared_ptr is standard conforming, any version ought to do and upgrading boost::shared_ptr ought to not break things. Hence the idea that libraries can follow their own release schedules.