forked from boostorg/iterator
iterator/const_iterator indirection interop
[SVN r849]
This commit is contained in:
@@ -82,7 +82,7 @@ struct indirect_iterator_pair_generator
|
|||||||
|
|
||||||
typedef boost::indirect_iterator<
|
typedef boost::indirect_iterator<
|
||||||
typename Container::iterator
|
typename Container::iterator
|
||||||
, indirect_const_iterator_traits<typename Container::iterator>
|
, indirect_const_iterator_traits<typename Container::const_iterator>
|
||||||
> const_iterator;
|
> const_iterator;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -95,12 +95,18 @@ namespace boost { namespace detail
|
|||||||
template<> struct iterator_traits<dummyT*>
|
template<> struct iterator_traits<dummyT*>
|
||||||
: ptr_iter_traits<dummyT> {};
|
: ptr_iter_traits<dummyT> {};
|
||||||
|
|
||||||
|
template<> struct iterator_traits<dummyT*const>
|
||||||
|
: ptr_iter_traits<dummyT> {};
|
||||||
|
|
||||||
template<> struct iterator_traits<dummyT const*>
|
template<> struct iterator_traits<dummyT const*>
|
||||||
: ptr_iter_traits<dummyT, dummyT const> {};
|
: ptr_iter_traits<dummyT, dummyT const> {};
|
||||||
|
|
||||||
template<> struct iterator_traits<dummyT**>
|
template<> struct iterator_traits<dummyT**>
|
||||||
: ptr_iter_traits<dummyT*> {};
|
: ptr_iter_traits<dummyT*> {};
|
||||||
|
|
||||||
|
template<> struct iterator_traits<dummyT*const*>
|
||||||
|
: ptr_iter_traits<dummyT*const> {};
|
||||||
|
|
||||||
template<> struct iterator_traits<dummyT const*const*>
|
template<> struct iterator_traits<dummyT const*const*>
|
||||||
: ptr_iter_traits<dummyT const*, dummyT const*const> {};
|
: ptr_iter_traits<dummyT const*, dummyT const*const> {};
|
||||||
}}
|
}}
|
||||||
@@ -155,7 +161,7 @@ void more_indirect_iterator_tests()
|
|||||||
typedef boost::indirect_iterator<iterator_set::iterator> indirect_set_iterator;
|
typedef boost::indirect_iterator<iterator_set::iterator> indirect_set_iterator;
|
||||||
typedef boost::indirect_iterator<
|
typedef boost::indirect_iterator<
|
||||||
iterator_set::iterator
|
iterator_set::iterator
|
||||||
, indirect_const_iterator_traits<iterator_set::iterator>
|
, indirect_const_iterator_traits<iterator_set::const_iterator>
|
||||||
> const_indirect_set_iterator;
|
> const_indirect_set_iterator;
|
||||||
|
|
||||||
indirect_set_iterator sb(iter_set.begin());
|
indirect_set_iterator sb(iter_set.begin());
|
||||||
@@ -202,7 +208,7 @@ main()
|
|||||||
|
|
||||||
typedef boost::indirect_iterator<
|
typedef boost::indirect_iterator<
|
||||||
shared_t::iterator
|
shared_t::iterator
|
||||||
, indirect_const_iterator_traits<shared_t::iterator>
|
, indirect_const_iterator_traits<shared_t::const_iterator>
|
||||||
> c_iter_t;
|
> c_iter_t;
|
||||||
|
|
||||||
# ifndef NO_MUTABLE_CONST_RA_ITERATOR_INTEROPERABILITY
|
# ifndef NO_MUTABLE_CONST_RA_ITERATOR_INTEROPERABILITY
|
||||||
@@ -221,7 +227,7 @@ main()
|
|||||||
|
|
||||||
typedef boost::indirect_iterator<dummyT**> indirect_iterator;
|
typedef boost::indirect_iterator<dummyT**> indirect_iterator;
|
||||||
|
|
||||||
typedef boost::indirect_iterator<dummyT**, indirect_const_iterator_traits<dummyT**> >
|
typedef boost::indirect_iterator<dummyT**, indirect_const_iterator_traits<dummyT* const*> >
|
||||||
const_indirect_iterator;
|
const_indirect_iterator;
|
||||||
|
|
||||||
indirect_iterator i(ptr);
|
indirect_iterator i(ptr);
|
||||||
|
Reference in New Issue
Block a user