From 71279f8a4457fee069135c36f84671dec4965180 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Mon, 31 Jul 2000 15:43:07 +0000 Subject: [PATCH] Some fixes for MSVC6, plus changed instances of BOOST_NO_ITERATOR_TRAITS to BOOST_NO_STD_ITERATOR_TRAITS. [SVN r7669] --- include/boost/iterator_adaptors.hpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/include/boost/iterator_adaptors.hpp b/include/boost/iterator_adaptors.hpp index 02cb09f..e190e2d 100644 --- a/include/boost/iterator_adaptors.hpp +++ b/include/boost/iterator_adaptors.hpp @@ -177,6 +177,19 @@ public: iterator_adaptor(const Iterator& iter, const Policies& p = Policies()) : m_iter_p(iter, p) {} +#ifdef BOOST_MSVC6_MEMBER_TEMPLATES + template + iterator_adaptor(const iterator_adaptor& rhs) + : m_iter_p(rhs.iter(), rhs.policies()) {} + + template + Self& operator=(const iterator_adaptor& rhs) + { + iter() = rhs.iter(); + policies() = rhs.policies(); + return *this; + } +#else template iterator_adaptor(const iterator_adaptor& rhs) : m_iter_p(rhs.iter(), rhs.policies()) {} @@ -188,6 +201,7 @@ public: policies() = rhs.policies(); return *this; } +#endif reference operator*() const { return policies().dereference(type(), iter()); @@ -362,7 +376,7 @@ struct transform_iterator_traits { template #else class Traits @@ -392,7 +406,7 @@ struct indirect_iterator_policies : public default_iterator_policies }; template , class ConstTraits = std::iterator_traits #else