From 36feca8a524d13d2cf12188091f8db0d20642e40 Mon Sep 17 00:00:00 2001 From: Ronald Garcia Date: Mon, 11 Aug 2003 16:29:47 +0000 Subject: [PATCH] Updated shared_container_iterator to use the new iterator adaptors library. Updated the documentation and examples as well to reflect the changes. [SVN r19535] --- include/boost/shared_container_iterator.hpp | 43 +++++++++++---------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/include/boost/shared_container_iterator.hpp b/include/boost/shared_container_iterator.hpp index 95cf6c1..e21d8da 100644 --- a/include/boost/shared_container_iterator.hpp +++ b/include/boost/shared_container_iterator.hpp @@ -15,38 +15,41 @@ namespace boost { template -struct shared_container_iterator_policies : - public boost::default_iterator_policies { +class shared_container_iterator : public iterator_adaptor< + shared_container_iterator, + typename Container::iterator> { + + typedef iterator_adaptor< + shared_container_iterator, + typename Container::iterator> super_t; + + typedef typename Container::iterator iterator_t; typedef boost::shared_ptr container_ref_t; + container_ref_t container_ref; - shared_container_iterator_policies(container_ref_t const& c) : - container_ref(c) { } - shared_container_iterator_policies() { } -}; - - -template -class shared_container_iterator_generator { - typedef typename Container::iterator iterator; - typedef shared_container_iterator_policies policy; public: - typedef boost::iterator_adaptor type; + shared_container_iterator() { } + + shared_container_iterator(iterator_t const& x,container_ref_t const& c) : + super_t(x), container_ref(c) { } + + }; template -typename shared_container_iterator_generator::type +shared_container_iterator make_shared_container_iterator(typename Container::iterator iter, boost::shared_ptr const& container) { - typedef typename shared_container_iterator_generator::type - iterator; - typedef shared_container_iterator_policies policy; - return iterator(iter,policy(container)); + typedef shared_container_iterator iterator; + return iterator(iter,container); } + + template std::pair< - typename shared_container_iterator_generator::type, - typename shared_container_iterator_generator::type> + shared_container_iterator, + shared_container_iterator > make_shared_container_range(boost::shared_ptr const& container) { return std::make_pair(