transform_iterator(
         transform_iterator<OtherUnaryFunction, OtherIterator, OtherReference, OtherValue> const& t
       , typename enable_if_convertible<OtherIterator, Iterator>::type* = 0
#if !POTHOS_WORKAROUND(POTHOS_MSVC, == 1310)
       , typename enable_if_convertible<OtherUnaryFunction, UnaryFunc>::type* = 0
#endif 
    )
      : super_t(t.base()), m_f(t.functor())
   {}
예제 #2
0
 transform_iterator(
         transform_iterator<
             OtherIterator, OtherTransformer,  OtherReference, OtherValue
         > const& t,
         typename std::enable_if<
             std::is_convertible<OtherIterator, Iterator>::value &&
             std::is_convertible<OtherTransformer, Transformer>::value
         >::type* = 0)
   : base_type(t.base()), transformer_(t.transformer())
 {}
예제 #3
0
 friend bool operator== (const transform_iterator& i, const transform_iterator& i2)
 { return i.equal(i2); }
예제 #4
0
 friend typename Iterator::difference_type operator- (const transform_iterator& i, const transform_iterator& i2)
 { return i2.distance_to(i); }
예제 #5
0
 transform_iterator(const transform_iterator<InputIterator,
                                             UnaryFunction> &other)
     : super_type(other.base()),
       m_transform(other.m_transform)
 {
 }
 BOOST_INTRUSIVE_FORCEINLINE friend typename Iterator::difference_type operator- (const transform_iterator& i, const transform_iterator& i2)
 { return i2.distance_to(i); }
 BOOST_INTRUSIVE_FORCEINLINE friend bool operator== (const transform_iterator& i, const transform_iterator& i2)
 { return i.equal(i2); }
예제 #8
0
파일: iterators.hpp 프로젝트: YANG-H/Wheels
constexpr auto operator-(const transform_iterator<T, IterT, FunT> &i1,
                         const transform_iterator<T, IterT, FunT> &i2) {
  return i1.base() - i2.base();
}
예제 #9
0
파일: iterators.hpp 프로젝트: YANG-H/Wheels
constexpr bool operator<(const transform_iterator<T, IterT, FunT> &i1,
                         const transform_iterator<T, IterT, FunT> &i2) {
  return i1.base() < i2.base();
}
예제 #10
0
 friend typename std::iterator_traits<Iterator>::difference_type operator- (const transform_iterator& i, const transform_iterator& i2)
 {
     return i2.distance_to(i);
 }