New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix #3666, plus some drive-by edits #3750
Conversation
template<view V, class Pred> | ||
requires input_range<V> && is_object_v<Pred> && | ||
indirect_unary_predicate<const Pred, iterator_t<V>> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<view V, class Pred> | ||
requires input_range<V> && is_object_v<Pred> && | ||
indirect_unary_predicate<const Pred, iterator_t<V>> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@@ -2270,7 +2272,8 @@ | |||
\indexlibraryglobal{iota_view::iterator}% | |||
\begin{codeblock} | |||
namespace std::ranges { | |||
template<class W, class Bound> | |||
template<weakly_incrementable W, semiregular Bound> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<weakly_incrementable W, semiregular Bound> | |
template<@\libconcept{weakly_incrementable}@ W, @\libconcept{semiregular}@ Bound> |
@@ -2640,7 +2643,8 @@ | |||
\indexlibraryglobal{iota_view::sentinel}% | |||
\begin{codeblock} | |||
namespace std::ranges { | |||
template<class W, class Bound> | |||
template<weakly_incrementable W, semiregular Bound> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<weakly_incrementable W, semiregular Bound> | |
template<@\libconcept{weakly_incrementable}@ W, @\libconcept{semiregular}@ Bound> |
template<input_range V, indirect_unary_predicate<iterator_t<V>> Pred> | ||
requires view<V> && is_object_v<Pred> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V, indirect_unary_predicate<iterator_t<V>> Pred> | |
requires view<V> && is_object_v<Pred> | |
template<@\libconcept{input_range}@ V, @\libconcept{indirect_unary_predicate}@<iterator_t<V>> Pred> | |
requires @\libconcept{view}@<V> && is_object_v<Pred> |
template<input_range V, indirect_unary_predicate<iterator_t<V>> Pred> | ||
requires view<V> && is_object_v<Pred> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V, indirect_unary_predicate<iterator_t<V>> Pred> | |
requires view<V> && is_object_v<Pred> | |
template<@\libconcept{input_range}@ V, @\libconcept{indirect_unary_predicate}@<iterator_t<V>> Pred> | |
requires @\libconcept{view}@<V> && is_object_v<Pred> |
template<input_range V, copy_constructible F> | ||
requires view<V> && is_object_v<F> && | ||
regular_invocable<F&, range_reference_t<V>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V, copy_constructible F> | |
requires view<V> && is_object_v<F> && | |
regular_invocable<F&, range_reference_t<V>> | |
template<@\libconcept{input_range}@ V, @\libconcept{copy_constructible}@ F> | |
requires @\libconcept{view}@<V> && is_object_v<F> && | |
@\libconcept{regular_invocable}@<F&, range_reference_t<V>> |
template<input_range V, copy_constructible F> | ||
requires view<V> && is_object_v<F> && | ||
regular_invocable<F&, range_reference_t<V>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V, copy_constructible F> | |
requires view<V> && is_object_v<F> && | |
regular_invocable<F&, range_reference_t<V>> | |
template<@\libconcept{input_range}@ V, @\libconcept{copy_constructible}@ F> | |
requires @\libconcept{view}@<V> && is_object_v<F> && | |
@\libconcept{regular_invocable}@<F&, range_reference_t<V>> |
@@ -4361,7 +4373,7 @@ | |||
\indexlibraryglobal{take_view::sentinel}% | |||
\begin{codeblock} | |||
namespace std::ranges { | |||
template<class V> | |||
template<view V> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<view V> | |
template<@\libconcept{view}@ V> |
template<view V, class Pred> | ||
requires input_range<V> && is_object_v<Pred> && | ||
indirect_unary_predicate<const Pred, iterator_t<V>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<view V, class Pred> | |
requires input_range<V> && is_object_v<Pred> && | |
indirect_unary_predicate<const Pred, iterator_t<V>> | |
template<@\libconcept{view}@ V, class Pred> | |
requires @\libconcept{input_range}@<V> && is_object_v<Pred> && | |
@\libconcept{indirect_unary_predicate}@<const Pred, iterator_t<V>> |
template<input_range V> | ||
requires view<V> && input_range<range_reference_t<V>> && | ||
(is_reference_v<range_reference_t<V>> || | ||
view<range_value_t<V>>) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V> | |
requires view<V> && input_range<range_reference_t<V>> && | |
(is_reference_v<range_reference_t<V>> || | |
view<range_value_t<V>>) | |
template<@\libconcept{input_range}@ V> | |
requires @\libconcept{view}@<V> && @\libconcept{input_range}@<range_reference_t<V>> && | |
(is_reference_v<range_reference_t<V>> || | |
@\libconcept{view}@<range_value_t<V>>) |
template<input_range V> | ||
requires view<V> && input_range<range_reference_t<V>> && | ||
(is_reference_v<range_reference_t<V>> || | ||
view<range_value_t<V>>) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V> | |
requires view<V> && input_range<range_reference_t<V>> && | |
(is_reference_v<range_reference_t<V>> || | |
view<range_value_t<V>>) | |
template<@\libconcept{input_range}@ V> | |
requires @\libconcept{view}@<V> && @\libconcept{input_range}@<range_reference_t<V>> && | |
(is_reference_v<range_reference_t<V>> || | |
@\libconcept{view}@<range_value_t<V>>) |
template<input_range V, forward_range Pattern> | ||
requires view<V> && view<Pattern> && | ||
indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | ||
(forward_range<V> || @\exposconcept{tiny-range}@<Pattern>) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V, forward_range Pattern> | |
requires view<V> && view<Pattern> && | |
indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | |
(forward_range<V> || @\exposconcept{tiny-range}@<Pattern>) | |
template<input_range V, forward_range Pattern> | |
requires @\libconcept{view}@<V> && @\libconcept{view}@<Pattern> && | |
@\libconcept{indirectly_comparable}@<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | |
(@\libconcept{forward_range}@<V> || @\exposconcept{tiny-range}@<Pattern>) |
template<input_range V, forward_range Pattern> | ||
requires view<V> && view<Pattern> && | ||
indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | ||
(forward_range<V> || @\exposconcept{tiny-range}@<Pattern>) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V, forward_range Pattern> | |
requires view<V> && view<Pattern> && | |
indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | |
(forward_range<V> || @\exposconcept{tiny-range}@<Pattern>) | |
template<input_range V, forward_range Pattern> | |
requires @\libconcept{view}@<V> && @\libconcept{view}@<Pattern> && | |
@\libconcept{indirectly_comparable}@<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | |
(@\libconcept{forward_range}@<V> || @\exposconcept{tiny-range}@<Pattern>) |
template<input_range V, forward_range Pattern> | ||
requires view<V> && view<Pattern> && | ||
indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | ||
(forward_range<V> || @\exposconcept{tiny-range}@<Pattern>) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V, forward_range Pattern> | |
requires view<V> && view<Pattern> && | |
indirectly_comparable<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | |
(forward_range<V> || @\exposconcept{tiny-range}@<Pattern>) | |
template<input_range V, forward_range Pattern> | |
requires @\libconcept{view}@<V> && @\libconcept{view}@<Pattern> && | |
@\libconcept{indirectly_comparable}@<iterator_t<V>, iterator_t<Pattern>, ranges::equal_to> && | |
(@\libconcept{forward_range}@<V> || @\exposconcept{tiny-range}@<Pattern>) |
Manually rebased (and basically recreated from scratch, since the template-heads have changed substantially) and merged in ac3fcee. |
template<input_range V, size_t N> | ||
requires view<V> && @\placeholder{has-tuple-element}@<range_value_t<V>, N> && | ||
@\placeholder{has-tuple-element}@<remove_reference_t<range_reference_t<V>>, N> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
template<input_range V, size_t N> | |
requires view<V> && @\placeholder{has-tuple-element}@<range_value_t<V>, N> && | |
@\placeholder{has-tuple-element}@<remove_reference_t<range_reference_t<V>>, N> | |
template<@\libconcept{input_range}@ V, size_t N> | |
requires @\libconcept{view}@<V> && @\exposconcept{has-tuple-element}@<range_value_t<V>, N> && | |
@\exposconcept{has-tuple-element}@<remove_reference_t<range_reference_t<V>>, N> |
See the three commit logs.
Note that the change to
basic_istream_view::iterator
uses the namedefault_initializable
instead ofdefault_constructible
in anticipation of LWG motion 2.