| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| 93978.cc | ||
| 95322.cc | ||
| all.cc | ||
| common.cc | ||
| counted.cc | ||
| drop.cc | ||
| drop_while.cc | ||
| elements.cc | ||
| filter.cc | ||
| join.cc | ||
| lwg3286.cc | ||
| lwg3313_neg.cc | ||
| lwg3325_neg.cc | ||
| reverse.cc | ||
| split.cc | ||
| split_neg.cc | ||
| take.cc | ||
| take_while.cc | ||
| transform.cc |
The bug report is that transform_view's sentinel<false> cannot be compared to its iterator<true>. The comparison is supposed to use operator==(iterator<Const>, sentinel<Const>) after converting sentinel<false> to sentinel<true>. However, the operator== is a hidden friend so is not a candidate when comparing iterator<true> with sentinel<false>. The required conversion would only happen if we'd found the operator, but we can't find the operator until after the conversion happens. A new LWG issue has been reported, but not yet assigned a number. The solution suggested by Casey Carter is to make the hidden friends of the sentinel types work with iterators of any const-ness, so that no conversions are required. Patrick Palka observed that join_view has a similar problem and a similar fix is used for its sentinel. PR libstdc++/95322 * include/std/ranges (transform_view::_Sentinel): Allow hidden friends to work with _Iterator<true> and _Iterator<false>. (join_view::_Sentinel): Likewise. * testsuite/std/ranges/adaptors/95322.cc: New test. (cherry picked from commit 6c2582c0406250c66e2eb3651f8e8638796b7f53)
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| 93978.cc | Loading commit data... | |
| 95322.cc | Loading commit data... | |
| all.cc | Loading commit data... | |
| common.cc | Loading commit data... | |
| counted.cc | Loading commit data... | |
| drop.cc | Loading commit data... | |
| drop_while.cc | Loading commit data... | |
| elements.cc | Loading commit data... | |
| filter.cc | Loading commit data... | |
| join.cc | Loading commit data... | |
| lwg3286.cc | Loading commit data... | |
| lwg3313_neg.cc | Loading commit data... | |
| lwg3325_neg.cc | Loading commit data... | |
| reverse.cc | Loading commit data... | |
| split.cc | Loading commit data... | |
| split_neg.cc | Loading commit data... | |
| take.cc | Loading commit data... | |
| take_while.cc | Loading commit data... | |
| transform.cc | Loading commit data... |