diff --git a/common/main/d_range.h b/common/main/d_range.h index 8ccc32cb1..c14cba1d8 100644 --- a/common/main/d_range.h +++ b/common/main/d_range.h @@ -108,7 +108,7 @@ public: * kept because it is easier to find with grep. */ template -class xrange_extent : +class xrange : public xrange_endpoint, public xrange_endpoint { @@ -138,11 +138,11 @@ class xrange_extent : } public: using range_owns_iterated_storage = std::false_type; - xrange_extent(B b, E e) : + xrange(B b, E e) : begin_type(init_begin(std::move(b), e)), end_type(std::move(e)) { } - xrange_extent(E e) : + xrange(E e) : begin_type(), end_type(e) { static_assert(detail::xrange_is_unsigned::value, "xrange(E) requires unsigned E; use xrange(B, E) if E must be signed"); @@ -164,26 +164,24 @@ public: * the next overload down instead. */ template ::value, int>::type = 0> -xrange_extent(Tb &&b, Te &e) -> xrange_extent; // provokes a static_assert failure in the constructor +xrange(Tb &&b, Te &e) -> xrange; // provokes a static_assert failure in the constructor template -xrange_extent(Tb &&b, Te &&e) -> xrange_extent< +xrange(Tb &&b, Te &&e) -> xrange< typename std::common_type::type, typename std::remove_const::type>::type, typename std::remove_const::type>::type >; template -xrange_extent(const Te &) -> xrange_extent::type, 0u>>; +xrange(const Te &) -> xrange::type, 0u>>; template -xrange_extent(Te &) -> xrange_extent< +xrange(Te &) -> xrange< Te, std::integral_constant::type, unsigned>::type, 0u>, Te & >; template -xrange_extent(std::integral_constant) -> xrange_extent, std::integral_constant>; - -#define xrange xrange_extent +xrange(std::integral_constant) -> xrange, std::integral_constant>;