diff --git a/concat.lwg.feedback.md b/concat.lwg.feedback.md index 9e2a55f..ba5236f 100644 --- a/concat.lwg.feedback.md +++ b/concat.lwg.feedback.md @@ -21,6 +21,7 @@ [Done] instead of ranges::size this should be ranges::distance and we don't need the static_cast. [Done] all the steps need to cast to that iterator's difference_type [Done] al the steps need to be cast to range::diffence_type +[Done] the use of maybe-const on the requirement of the constructor: I think we removed them elsewhere as we Const is true # Todos @@ -36,7 +37,6 @@ [TODO] OK, we can keep it as is but I prefer < [TODO] do we want to avoid emplacing ranges we don't need to use? [TODO] explain why this is over-constrained -[TODO] the use of maybe-const on the requirement of the constructor: I think we removed them elsewhere as we Const is true [TODO] for op*() p10 can use concat_reference_t [TODO] we don't need the preconditions: they come from the "Equivalent to:" => strike p13 and p15 [TODO] you need p17 but you can rid of p19 diff --git a/concat.md b/concat.md index 5754a1a..f30f4e8 100644 --- a/concat.md +++ b/concat.md @@ -667,7 +667,7 @@ namespace std::ranges{ constexpr @_iterator_@(@_iterator_@ i) requires Const && - (convertible_to, iterator_t<@_maybe-const_@>>&&...); + (convertible_to, iterator_t> && ...); constexpr decltype(auto) operator*() const; diff --git a/impl/concat/concat.hpp b/impl/concat/concat.hpp index 34b3863..ea34b56 100644 --- a/impl/concat/concat.hpp +++ b/impl/concat/concat.hpp @@ -332,7 +332,7 @@ class concat_view : public view_interface> { constexpr iterator(iterator i) requires Const && - (convertible_to, iterator_t<__maybe_const>>&&...) + (convertible_to, iterator_t> && ...) // [TODO] noexcept specs? : parent_{i.parent_} , it_{std::move(i.it_)} {}