diff --git a/octa/range.h b/octa/range.h index 43d854c..5b8cacf 100644 --- a/octa/range.h +++ b/octa/range.h @@ -746,11 +746,14 @@ template struct PointerRange: InputRange, FiniteRandomAccessRangeTag, T> { PointerRange(): p_beg(nullptr), p_end(nullptr) {} - PointerRange(const PointerRange &v): p_beg(v.p_beg), - p_end(v.p_end) {} PointerRange(T *beg, T *end): p_beg(beg), p_end(end) {} PointerRange(T *beg, octa::Size n): p_beg(beg), p_end(beg + n) {} + template + PointerRange(const PointerRange &v, octa::EnableIf< + octa::IsConvertible::value, bool + > = true): p_beg(&v[0]), p_end(&v[v.size()]) {} + PointerRange &operator=(const PointerRange &v) { p_beg = v.p_beg; p_end = v.p_end;