
On 10/16/2015 2:05 PM, Robert Ramey wrote:
On 10/16/15 10:51 AM, Edward Diener wrote:
On 10/16/2015 11:10 AM, Robert Ramey wrote:
On 10/15/15 9:50 PM, Edward Diener wrote:
I have pushed a number of changes to iterator from 'develop' to 'master' for the next release.
A series of these changes on 'develop', by Marcel Raad, is an attempt to remove from 'iterator' the use of the deprecated headers 'boost/iterator.hpp' and 'boost/detail/iterator.hpp' in favor of using 'std::iterator' directly instead of 'boost::iterator' and 'std::iterator_traits' and 'std::distance' directly instead of 'boost::detail::iterator_traits' and 'boost::detail::distance'. Essentially these changes mean that any other library using 'iterator' classes would fail if they attempted to refer to 'boost::iterator', 'boost::detail::iterator_traits', or 'boost::detail::distance'.
The serialization library depends heavily on functionality only present in boost/iterator. This sounds like a recipe for surprises
Only if serialization directly specifies 'boost::iterator', 'boost::detail::iterator_traits', or 'boost::detail::distance'. If it just uses the usual iterator templates the change would not affect it.
So namespaces aren't changed at all? I notice I'm using things like boost::iterator_value, boost::iterator_core_access, ... etc. (off topic - In hindsight it seems a mistake to put them into the root namespace). I don't happen to use #include
but isn't this a common idiom (convenience headers) in boost libraries? Are you sure you want to make a special case here?
First of all it's not really my change. Marcel Raad has pushed it based on previous comments in boost/iterator.hpp and boost/detail/iterator.hpp that these headers were deprecated. Namespaces aren't changed at all. All the boost iterator stuff is still boost::iterator_xxx etc. The header boost/iterator.hpp is a convenience header but all it does is put std::iterator in the boost namespace. Ditto for boost/detail/iterator.hpp just putting std::iterator_traits and std::distance into the boost::detail namespace. I don't know the history of any of this. I am working with 'iterator' on sufferance <g> because it doesn't look like any maintainer is paying the slightest attention to it and it still remains a key Boost library which needs some maintenance. If Marcel Raad, or some other expert, would like to be the new official maintainer of 'iterator' I would be more than happy.