This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Tentatively NAD status.
4184. Domain ofranges::cmeow
doesn't match ranges::meow
Section: 25.3 [range.access] Status: Tentatively NAD Submitter: Hewill Kang Opened: 2024-12-17 Last modified: 2025-02-07
Priority: Not Prioritized
View all issues with Tentatively NAD status.
Discussion:
ranges::begin/rbegin/data
can be used on non-ranges as long as the object has a begin/rbegin/data
member, this is also true for their const versions before C++23.
possibly-const-range
to the object, which no longer worked for non-ranges due to this function requiring input_range
, which seems to be a breaking change (demo):
#include <ranges> struct NotRange { int* begin(); const int* begin() const; int* rbegin(); const int* rbegin() const; int* data(); const int* data() const; }; int main() { NotRange r; (void) std::ranges::begin(r); (void) std::ranges::rbegin(r); (void) std::ranges::data(r); // The following works in C++20, fails in C++23 (void) std::ranges::cbegin(r); (void) std::ranges::crbegin(r); (void) std::ranges::cdata(r); }
[2025-02-07; Reflector poll: NAD]
"We don't need to support ranges::cbegin
on non-ranges."
"Seems to be very similar to LWG 3913(i) which LWG closed as NAD."
Proposed resolution:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4