Some fixes for MSVC6, plus changed instances of BOOST_NO_ITERATOR_TRAITS to

BOOST_NO_STD_ITERATOR_TRAITS.


[SVN r7669]
This commit is contained in:
Dave Abrahams
2000-07-31 15:43:07 +00:00
parent 51e5c86a2c
commit 71279f8a44

View File

@ -177,6 +177,19 @@ public:
iterator_adaptor(const Iterator& iter, const Policies& p = Policies()) iterator_adaptor(const Iterator& iter, const Policies& p = Policies())
: m_iter_p(iter, p) {} : m_iter_p(iter, p) {}
#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
template <class MutableIterator, class OtherTraits>
iterator_adaptor(const iterator_adaptor<MutableIterator, Policies, OtherTraits, NonconstIterator>& rhs)
: m_iter_p(rhs.iter(), rhs.policies()) {}
template <class MutableIterator, class OtherTraits>
Self& operator=(const iterator_adaptor<MutableIterator, Policies, OtherTraits, NonconstIterator>& rhs)
{
iter() = rhs.iter();
policies() = rhs.policies();
return *this;
}
#else
template <class OtherTraits> template <class OtherTraits>
iterator_adaptor(const iterator_adaptor<NonconstIterator, Policies, OtherTraits, NonconstIterator>& rhs) iterator_adaptor(const iterator_adaptor<NonconstIterator, Policies, OtherTraits, NonconstIterator>& rhs)
: m_iter_p(rhs.iter(), rhs.policies()) {} : m_iter_p(rhs.iter(), rhs.policies()) {}
@ -188,6 +201,7 @@ public:
policies() = rhs.policies(); policies() = rhs.policies();
return *this; return *this;
} }
#endif
reference operator*() const { reference operator*() const {
return policies().dereference(type<reference>(), iter()); return policies().dereference(type<reference>(), iter());
@ -362,7 +376,7 @@ struct transform_iterator_traits {
template <class AdaptableUnaryFunction, template <class AdaptableUnaryFunction,
class Iterator, class Iterator,
#ifndef BOOST_NO_ITERATOR_TRAITS #ifndef BOOST_NO_STD_ITERATOR_TRAITS
class Traits = std::iterator_traits<Iterator> class Traits = std::iterator_traits<Iterator>
#else #else
class Traits class Traits
@ -392,7 +406,7 @@ struct indirect_iterator_policies : public default_iterator_policies
}; };
template <class IndirectIterator, template <class IndirectIterator,
#ifdef BOOST_NO_ITERATOR_TRAITS #ifdef BOOST_NO_STD_ITERATOR_TRAITS
class IndirectTraits, class IndirectTraits,
class Traits class Traits
#else #else
@ -411,7 +425,7 @@ struct indirect_traits
}; };
template <class IndirectIterator, class ConstIndirectIterator, template <class IndirectIterator, class ConstIndirectIterator,
#ifdef BOOST_NO_ITERATOR_TRAITS #ifdef BOOST_NO_STD_ITERATOR_TRAITS
class IndirectTraits, class IndirectTraits,
class ConstIndirectTraits, class ConstIndirectTraits,
class Traits class Traits
@ -473,7 +487,7 @@ struct reverse_iterator_policies
}; };
template <class Iterator, class ConstIterator, template <class Iterator, class ConstIterator,
#ifndef BOOST_NO_ITERATOR_TRAITS #ifndef BOOST_NO_STD_ITERATOR_TRAITS
class Traits = std::iterator_traits<Iterator>, class Traits = std::iterator_traits<Iterator>,
class ConstTraits = std::iterator_traits<ConstIterator> class ConstTraits = std::iterator_traits<ConstIterator>
#else #else