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())
   {}
Ejemplo n.º 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())
 {}
Ejemplo n.º 3
0
 transform_iterator(const transform_iterator<InputIterator,
                                             UnaryFunction> &other)
     : super_type(other.base()),
       m_transform(other.m_transform)
 {
 }
Ejemplo n.º 4
0
constexpr auto operator-(const transform_iterator<T, IterT, FunT> &i1,
                         const transform_iterator<T, IterT, FunT> &i2) {
  return i1.base() - i2.base();
}
Ejemplo n.º 5
0
constexpr bool operator<(const transform_iterator<T, IterT, FunT> &i1,
                         const transform_iterator<T, IterT, FunT> &i2) {
  return i1.base() < i2.base();
}