comparison DEPENDENCIES/generic/include/boost/range/irange.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
49 > base_t; 49 > base_t;
50 public: 50 public:
51 typedef typename base_t::value_type value_type; 51 typedef typename base_t::value_type value_type;
52 typedef typename base_t::difference_type difference_type; 52 typedef typename base_t::difference_type difference_type;
53 typedef typename base_t::reference reference; 53 typedef typename base_t::reference reference;
54 typedef std::random_access_iterator_tag iterator_category;
54 55
55 integer_iterator() : m_value() {} 56 integer_iterator() : m_value() {}
56 explicit integer_iterator(value_type x) : m_value(x) {} 57 explicit integer_iterator(value_type x) : m_value(x) {}
57 58
58 private: 59 private:
71 m_value += offset; 72 m_value += offset;
72 } 73 }
73 74
74 difference_type distance_to(const integer_iterator& other) const 75 difference_type distance_to(const integer_iterator& other) const
75 { 76 {
76 return other.m_value - m_value; 77 return is_signed<value_type>::value
78 ? (other.m_value - m_value)
79 : (other.m_value >= m_value)
80 ? static_cast<difference_type>(other.m_value - m_value)
81 : -static_cast<difference_type>(m_value - other.m_value);
77 } 82 }
78 83
79 bool equal(const integer_iterator& other) const 84 bool equal(const integer_iterator& other) const
80 { 85 {
81 return m_value == other.m_value; 86 return m_value == other.m_value;
121 > base_t; 126 > base_t;
122 public: 127 public:
123 typedef typename base_t::value_type value_type; 128 typedef typename base_t::value_type value_type;
124 typedef typename base_t::difference_type difference_type; 129 typedef typename base_t::difference_type difference_type;
125 typedef typename base_t::reference reference; 130 typedef typename base_t::reference reference;
131 typedef std::random_access_iterator_tag iterator_category;
126 132
127 integer_iterator_with_step(value_type first, difference_type step, value_type step_size) 133 integer_iterator_with_step(value_type first, difference_type step, value_type step_size)
128 : m_first(first) 134 : m_first(first)
129 , m_step(step) 135 , m_step(step)
130 , m_step_size(step_size) 136 , m_step_size(step_size)
162 return m_first + (m_step * m_step_size); 168 return m_first + (m_step * m_step_size);
163 } 169 }
164 170
165 friend class ::boost::iterator_core_access; 171 friend class ::boost::iterator_core_access;
166 value_type m_first; 172 value_type m_first;
167 value_type m_step; 173 difference_type m_step;
168 difference_type m_step_size; 174 difference_type m_step_size;
169 }; 175 };
170 176
171 } // namespace range_detail 177 } // namespace range_detail
172 178