indirect_iterator( indirect_iterator< Iterator2, Value2, Category2, Reference2, Difference2 > const& y , typename enable_if_convertible<Iterator2, Iterator>::type* = 0 ) : super_t(y.base()) {}
template< class I1, class V1, class C1, class R1, class D1, class I2, class V2, class C2, class R2, class D2 > inline void iter_swap(indirect_iterator<I1, V1, C1, R1, D1> it1, indirect_iterator<I2, V2, C2, R2, D2> it2, int = 0) { do_iter_swap(read(it1.base()), read(it2.base())); }
indirect_iterator(indirect_iterator<I, V, C, R, D> const& other, typename boost::enable_if_convertible<I, Iterator>::type * = 0 ) : super_t(other.base()) { }