Skip to content
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

Closed
wants to merge 4 commits into from

Conversation

CaseyCarter
Copy link
Contributor

See the three commit logs.

Note that the change to basic_istream_view::iterator uses the name default_initializable instead of default_constructible in anticipation of LWG motion 2.

source/ranges.tex Outdated Show resolved Hide resolved
@burblebee burblebee added lwg Issue must be reviewed by LWG. and removed lwg Issue must be reviewed by LWG. labels Feb 23, 2020
template<view V, class Pred>
requires input_range<V> && is_object_v<Pred> &&
indirect_unary_predicate<const Pred, iterator_t<V>>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

template<view V, class Pred>
requires input_range<V> && is_object_v<Pred> &&
indirect_unary_predicate<const Pred, iterator_t<V>>

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change

@@ -2270,7 +2272,8 @@
\indexlibraryglobal{iota_view::iterator}%
\begin{codeblock}
namespace std::ranges {
template<class W, class Bound>
template<weakly_incrementable W, semiregular Bound>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
template<weakly_incrementable W, semiregular Bound>
template<@\libconcept{weakly_incrementable}@ W, @\libconcept{semiregular}@ Bound>

Comment on lines +3230 to +3231
template<input_range V, indirect_unary_predicate<iterator_t<V>> Pred>
requires view<V> && is_object_v<Pred>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>

Comment on lines +3481 to +3482
template<input_range V, indirect_unary_predicate<iterator_t<V>> Pred>
requires view<V> && is_object_v<Pred>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>

Comment on lines +3715 to +3717
template<input_range V, copy_constructible F>
requires view<V> && is_object_v<F> &&
regular_invocable<F&, range_reference_t<V>>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>>

Comment on lines +4120 to +4122
template<input_range V, copy_constructible F>
requires view<V> && is_object_v<F> &&
regular_invocable<F&, range_reference_t<V>>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
template<view V>
template<@\libconcept{view}@ V>

Comment on lines +4547 to +4549
template<view V, class Pred>
requires input_range<V> && is_object_v<Pred> &&
indirect_unary_predicate<const Pred, iterator_t<V>>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>>

Comment on lines +4982 to +4985
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>>)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>>)

Comment on lines +5294 to +5297
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>>)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>>)

Comment on lines +5489 to +5492
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>)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>)

Comment on lines +5650 to +5653
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>)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>)

Comment on lines +5718 to +5721
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>)
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>)

@zygoloid
Copy link
Member

Manually rebased (and basically recreated from scratch, since the template-heads have changed substantially) and merged in ac3fcee.

@zygoloid zygoloid closed this Mar 12, 2020
Comment on lines +6327 to +6329
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>
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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>

@CaseyCarter CaseyCarter deleted the fox3666 branch March 12, 2020 02:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants