示例#1
0
void single_pass_readable_iterator(Iterator first, Iterator last, IteratorA firstA, IteratorA lastA)
{
    PSTADE_CONCEPT_ASSERT((boost_concepts::SinglePassIteratorConcept<Iterator>));
    PSTADE_CONCEPT_ASSERT((boost_concepts::ReadableIteratorConcept<Iterator>));

    {
        BOOST_CHECK(first == first);
        BOOST_CHECK(last == last);
        BOOST_CHECK(!(first == last) ? (first != last) : true);
        BOOST_CHECK(!(first != last) ? (first == last) : true);
    }
    {
        test::iter_equality(first, last, firstA, lastA);
    }
}
示例#2
0
 result_type operator()(Range& rng, Predicate pred) const
 {
     PSTADE_CONCEPT_ASSERT((SinglePass<Range>));
     return result_type(
         std::find_if(boost::begin(rng), boost::end(rng), not_(pred)),
         boost::end(rng)
     );
 }
示例#3
0
 result_type operator()(Range& rng, diff_t tabsize,
     val_t newline = detail::default_newline<val_t>::value(),
     val_t tab     = detail::default_tab<val_t>::value(),
     val_t space   = detail::default_space<val_t>::value() ) const
 {
     PSTADE_CONCEPT_ASSERT((Forward<Range>));
     return aux(boost::begin(rng), boost::end(rng), tabsize, newline, tab, space);
 }
示例#4
0
        result_type operator()(Range& rng, diff_t n, diff_t m) const
        {
            PSTADE_CONCEPT_ASSERT((Forward<Range>));
            BOOST_ASSERT(n <= m);
            BOOST_ASSERT(n < 0 ? is_bidirectional(rng) : true);

            // A "bigger" window is allowed.
            // 'n < 0' or 'distance(rng) < m' is ok.

            iter_t first = advance_from(boost::begin(rng), n);
            return result_type(first, advance_from(first, m - n));
        }
示例#5
0
 result_type operator()(Range& rng, Compare comp) const
 {
     PSTADE_CONCEPT_ASSERT((Forward<Range>));
     return here::aux(boost::begin(rng), boost::end(rng), comp);
 }
示例#6
0
 result_type operator()(Range& rng) const
 {
     PSTADE_CONCEPT_ASSERT((SinglePass<Range>));
     return aux(boost::end(rng));
 }
示例#7
0
 result_type operator()(Range& rng) const
 {
     PSTADE_CONCEPT_ASSERT((Forward<Range>));
     return result_type(iter_t(rng, false), iter_t(rng, true));
 }
示例#8
0
 result_type operator()(Range& rng, Predicate& pred) const
 {
     PSTADE_CONCEPT_ASSERT((SinglePass<Range>));
     return aux(boost::begin(rng), boost::end(rng), read_then_pred_t(pred));
 }
示例#9
0
 result_type operator()(Range& rng) const
 {
     PSTADE_CONCEPT_ASSERT((SinglePass<Range>));
     return op_make_transformed<value_t>()(rng, identity);
 }