Exemplo n.º 1
0
 inline SequenceT transform_range_copy( 
     const RangeT& Input, 
     FunctorT Functor)
 {
     return SequenceT(
         make_transform_iterator(
             ::boost::begin(Input),
             Functor),
         make_transform_iterator(
             ::boost::end(Input), 
             Functor));
 }
inline times2_iterator make_times2_iterator(std::size_t i)
{
    return make_transform_iterator(
               make_counting_iterator(i)
               , std::bind1st(std::multiplies<std::size_t>(), 2)
           );
}
Exemplo n.º 3
0
inline SequenceSequenceT&
iter_find(
    SequenceSequenceT& Result,
    RangeT& Input,
    FinderT Finder )
{
    function_requires<
    FinderConcept<FinderT,
                  BOOST_STRING_TYPENAME range_iterator<RangeT>::type> >();

    iterator_range<BOOST_STRING_TYPENAME range_iterator<RangeT>::type> lit_input(as_literal(Input));

    typedef BOOST_STRING_TYPENAME
    range_iterator<RangeT>::type input_iterator_type;
    typedef find_iterator<input_iterator_type> find_iterator_type;
    typedef detail::copy_iterator_rangeF<
    BOOST_STRING_TYPENAME
    range_value<SequenceSequenceT>::type,
                input_iterator_type> copy_range_type;

    input_iterator_type InputEnd=end(lit_input);

    typedef transform_iterator<copy_range_type, find_iterator_type>
    transform_iter_type;

    transform_iter_type itBegin=
        make_transform_iterator(
            find_iterator_type( begin(lit_input), InputEnd, Finder ),
            copy_range_type());

    transform_iter_type itEnd=
        make_transform_iterator(
            find_iterator_type(),
            copy_range_type());

    SequenceSequenceT Tmp(itBegin, itEnd);

    Result.swap(Tmp);
    return Result;
}
Exemplo n.º 4
0
 replaced_if_range( R& r, const Pred& pred, value_type to )
     : base_t( make_transform_iterator( mars_boost::begin(r), Fn(pred, to) ),
               make_transform_iterator( mars_boost::end(r), Fn(pred, to) ) )
 { }
Exemplo n.º 5
0
            transformed_range( F f, R& r )
                : base( make_transform_iterator( boost::begin(r), f ),
                        make_transform_iterator( boost::end(r), f ) )

            { }
Exemplo n.º 6
0
 replaced_range( R& r, value_type from, value_type to )
     : base_t( make_transform_iterator( lslboost::begin(r), Fn(from, to) ),
               make_transform_iterator( lslboost::end(r), Fn(from, to) ) )
 { }