
This is a somewhat tangential thought, but ... what if each release of the Boost libraries was put into its own namespace, so we have code in namespace boost_1_38_0 { ... } rather than in namespace boost. Then, in end user code, you just need : using namespace boost = boost_1_38_0; It seems like this would allow certain deprecated Boost components (those that are not too strongly coupled to the rest of Boost) to be used at the same time as more recent components from other libraries : using boost_1_32_0::iterator_range; iterator_range<some_iterator> rng; which might sidestep some of the recent iterator_range anarchy, and simplify other major transitions. N.B. I haven't really thought about the ramifications of doing this, so the idea might be completely unworkable in practice. Matthias