[iterators][segment iterator][range segment iterator] replace has_less_than_two_elements

by an appropriate call to boost::size
This commit is contained in:
Menelaos Karavelas
2015-01-28 17:38:58 +02:00
parent 3c443862d4
commit 3763829be3

View File

@@ -91,7 +91,7 @@ struct range_iterator_end<Range, open>
template <typename Range, typename Value, typename Reference = Value>
class range_segment_iterator
struct range_segment_iterator
: public boost::iterator_facade
<
range_segment_iterator<Range, Value, Reference>,
@@ -100,16 +100,6 @@ class range_segment_iterator
Reference
>
{
private:
static bool has_less_than_two_elements(Range const& r)
{
iterator_type first = range_iterator_begin<Range>::apply(r);
iterator_type last = range_iterator_end<Range>::apply(r);
return first == last || ++first == last;
}
public:
typedef typename range_iterator_type<Range>::type iterator_type;
// default constructor
@@ -120,15 +110,15 @@ public:
// for begin
range_segment_iterator(Range& r)
: m_it(range_iterator_begin<Range>::apply(r))
, m_has_less_than_two_elements(has_less_than_two_elements(r))
, m_has_less_than_two_elements(boost::size(r) < 2u)
{}
// for end
range_segment_iterator(Range& r, bool)
: m_it(range_iterator_end<Range>::apply(r))
, m_has_less_than_two_elements(has_less_than_two_elements(r))
, m_has_less_than_two_elements(boost::size(r) < 2u)
{
if (!m_has_less_than_two_elements)
if (! m_has_less_than_two_elements)
{
// the range consists of at least two items
--m_it;