fixed the value_type and reference

[SVN r21770]
This commit is contained in:
Jeremy Siek
2004-01-15 19:01:03 +00:00
parent 3741fa77d2
commit c6526fc609

View File

@ -18,19 +18,17 @@ namespace boost
{ {
template< class ElementIterator template< class ElementIterator
, class IndexIterator , class IndexIterator>
, class ValueT = use_default
, class CategoryT = use_default
, class ReferenceT = use_default
, class DifferenceT = use_default >
class permutation_iterator class permutation_iterator
: public iterator_adaptor< : public iterator_adaptor<
permutation_iterator<ElementIterator, IndexIterator, ValueT, CategoryT, ReferenceT, DifferenceT> permutation_iterator<ElementIterator, IndexIterator>
, IndexIterator, ValueT, CategoryT, ReferenceT, DifferenceT > , IndexIterator, typename detail::iterator_traits<ElementIterator>::value_type
, use_default, typename detail::iterator_traits<ElementIterator>::reference>
{ {
typedef iterator_adaptor< typedef iterator_adaptor<
permutation_iterator<ElementIterator, IndexIterator, ValueT, CategoryT, ReferenceT, DifferenceT> permutation_iterator<ElementIterator, IndexIterator>
, IndexIterator, ValueT, CategoryT, ReferenceT, DifferenceT > super_t; , IndexIterator, typename detail::iterator_traits<ElementIterator>::value_type
, use_default, typename detail::iterator_traits<ElementIterator>::reference> super_t;
friend class iterator_core_access; friend class iterator_core_access;
@ -40,9 +38,9 @@ public:
explicit permutation_iterator(ElementIterator x, IndexIterator y) explicit permutation_iterator(ElementIterator x, IndexIterator y)
: super_t(y), m_elt_iter(x) {} : super_t(y), m_elt_iter(x) {}
template<class OtherElementIterator, class OtherIndexIterator, class V, class C, class R, class D > template<class OtherElementIterator, class OtherIndexIterator>
permutation_iterator( permutation_iterator(
permutation_iterator<OtherElementIterator, OtherIndexIterator, V, C, R, D> const& r permutation_iterator<OtherElementIterator, OtherIndexIterator> const& r
, typename enable_if_convertible<OtherElementIterator, ElementIterator>::type* = 0 , typename enable_if_convertible<OtherElementIterator, ElementIterator>::type* = 0
, typename enable_if_convertible<OtherIndexIterator, IndexIterator>::type* = 0 , typename enable_if_convertible<OtherIndexIterator, IndexIterator>::type* = 0
) )