Mercurial > hg > vamp-build-and-test
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 |