clean up IteratorRange, use unsigned variant of difference for size

master
Daniel Kolesa 2017-02-09 20:13:52 +01:00
parent 463c7275d5
commit ea6d3d4bbf
1 changed files with 1 additions and 4 deletions

View File

@ -1820,18 +1820,15 @@ struct IteratorRange: InputRange<
IteratorRangeTag<typename std::iterator_traits<T>::iterator_category>,
typename std::iterator_traits<T>::value_type,
typename std::iterator_traits<T>::reference,
size_t,
std::make_unsigned_t<typename std::iterator_traits<T>::difference_type>,
typename std::iterator_traits<T>::difference_type
> {
private:
struct Nat {};
using RefT = typename std::iterator_traits<T>::reference;
using DiffT = typename std::iterator_traits<T>::difference_type;
public:
IteratorRange(T beg = T{}, T end = T{}): p_beg(beg), p_end(end) {}
IteratorRange(T beg, size_t n): p_beg(beg), p_end(beg + n) {}
IteratorRange(IteratorRange const &v): p_beg(v.p_beg), p_end(v.p_end) {}
IteratorRange(IteratorRange &&v):