diff --git a/include/boost/iterator_adaptors.hpp b/include/boost/iterator_adaptors.hpp index 5a76439..212196b 100644 --- a/include/boost/iterator_adaptors.hpp +++ b/include/boost/iterator_adaptors.hpp @@ -65,11 +65,18 @@ struct default_iterator_policies // Traits - a class satisfying the same requirements as a specialization of // std::iterator_traits for the resulting iterator. // -template > +template , +#else + class Traits, +#endif + class NonconstIterator = Iterator + > struct iterator_adaptor : std::iterator { - typedef iterator_adaptor Self; + typedef iterator_adaptor Self; public: typedef typename Traits::difference_type difference_type; typedef typename Traits::value_type value_type; @@ -81,11 +88,11 @@ public: : m_impl(impl) {} template - iterator_adaptor(const iterator_adaptor& rhs) + iterator_adaptor(const iterator_adaptor& rhs) : m_impl(rhs.m_impl) {} template - Self& operator=(const iterator_adaptor& rhs) + Self& operator=(const iterator_adaptor& rhs) { m_impl = rhs.m_impl; return *this; } reference operator*() const { @@ -137,72 +144,72 @@ public: // too many compilers have trouble when this is private. Iterator m_impl; }; -template -iterator_adaptor -operator-(iterator_adaptor p, const typename Traits::difference_type x) +template +iterator_adaptor +operator-(iterator_adaptor p, const typename Traits::difference_type x) { return p -= x; } -template -iterator_adaptor -operator+(iterator_adaptor p, const typename Traits::difference_type x) +template +iterator_adaptor +operator+(iterator_adaptor p, const typename Traits::difference_type x) { return p += x; } -template -iterator_adaptor -operator+(const typename Traits::difference_type x, iterator_adaptor p) +template +iterator_adaptor +operator+(const typename Traits::difference_type x, iterator_adaptor p) { return p += x; } -template +template typename Traits1::difference_type operator-( - const iterator_adaptor& x, - const iterator_adaptor& y ) + const iterator_adaptor& x, + const iterator_adaptor& y ) { typedef typename Traits1::difference_type difference_type; return Policies::distance(type(), y.m_impl, x.m_impl); } -template +template inline bool -operator==(const iterator_adaptor& x, const iterator_adaptor& y) { +operator==(const iterator_adaptor& x, const iterator_adaptor& y) { return Policies::equal(x.m_impl, y.m_impl); } -template +template inline bool -operator<(const iterator_adaptor& x, const iterator_adaptor& y) { +operator<(const iterator_adaptor& x, const iterator_adaptor& y) { return Policies::less(x.m_impl, y.m_impl); } -template +template inline bool -operator>(const iterator_adaptor& x, - const iterator_adaptor& y) { +operator>(const iterator_adaptor& x, + const iterator_adaptor& y) { return Policies::less(y.m_impl, x.m_impl); } -template +template inline bool -operator>=(const iterator_adaptor& x, const iterator_adaptor& y) { +operator>=(const iterator_adaptor& x, const iterator_adaptor& y) { return !Policies::less(x.m_impl, y.m_impl); } -template +template inline bool -operator<=(const iterator_adaptor& x, - const iterator_adaptor& y) { +operator<=(const iterator_adaptor& x, + const iterator_adaptor& y) { return !Policies::less(y.m_impl, x.m_impl); } -template +template inline bool -operator!=(const iterator_adaptor& x, - const iterator_adaptor& y) { +operator!=(const iterator_adaptor& x, + const iterator_adaptor& y) { return !Policies::equal(x.m_impl, y.m_impl); }