We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
From the WD, join_view::iterator::operator-- is specified as:
join_view::iterator::operator--
constexpr iterator& operator--() requires ref_is_glvalue && BidirectionalRange<Base> && BidirectionalRange<iter_reference_t<iterator_t<Base>>>;
14 Effects: Equivalent to:
if (outer_ == ranges::end(parent_->base_)) inner_ = ranges::end(*--outer_); while (inner_ == ranges::begin(*outer_)) inner_ = ranges::end(*--outer_); --inner_; return *this;
The trouble is from the lines that do:
inner_ = ranges::end(*--outer_);
Clearly this will only compile when *--outer returns a CommonRange, but nowhere is that requirement stated.
*--outer
CommonRange
Change the synopsis of join_view::iterator in [range.join.iterator] as follows:
join_view::iterator
constexpr iterator& operator--() requires ref_is_glvalue && BidirectionalRange<Base> && - BidirectionalRange<iter_reference_t<iterator_t<Base>>>; + BidirectionalRange<iter_reference_t<iterator_t<Base>>> && + CommonRange<iter_reference_t<iterator_t<Base>>>; constexpr iterator operator--(int) requires ref_is_glvalue && BidirectionalRange<Base> && - BidirectionalRange<iter_reference_t<iterator_t<Base>>>; + BidirectionalRange<iter_reference_t<iterator_t<Base>>> && + CommonRange<iter_reference_t<iterator_t<Base>>>;
Make a similar change to the declarations in [range.join.iterator]/14 and /15.
The text was updated successfully, but these errors were encountered:
Edited the PR to end the requires-clause with ; instead of &&, and duplicated the requirements for operator--(int).
;
&&
operator--(int)
Sorry, something went wrong.
join_view: implement P/R of ericniebler/stl2#606
9d8b39b
Merge pull request #267 from CaseyCarter/join_view
a8115ad
No branches or pull requests
From the WD,
join_view::iterator::operator--
is specified as:14 Effects: Equivalent to:
The trouble is from the lines that do:
Clearly this will only compile when
*--outer
returns aCommonRange
, but nowhere is that requirement stated.Proposed Resolution:
Change the synopsis of
join_view::iterator
in [range.join.iterator] as follows:Make a similar change to the declarations in [range.join.iterator]/14 and /15.
The text was updated successfully, but these errors were encountered: