This is an archive of the discontinued LLVM Phabricator instance.

[libc++] [ranges] Permit std::mergeable and std::sortable with HAS_NO_INCOMPLETE_RANGES
ClosedPublic

Authored by Quuxplusone on Feb 18 2022, 8:44 AM.

Details

Summary

This follows the general direction of D118736 that _LIBCPP_HAS_NO_INCOMPLETE_RANGES does *not* guard anything outside of the std::ranges:: namespace itself. This means we must permit ranges::less etc. in no-ranges mode; that seems fine to me.

I believe this doesn't need to be merged to release/14.x, unless @ldionne you want to also merge eea3d90af181fdb66e583af53401e80ddfcc8cd1 and 8e979460bb27610d574733ca5b75afae0cdfb3c9 to release/14.x? (Again, the only logic to that would be so that we could brag that a sensible, non-arbitrary subset was implemented in libc++14.)

Diff Detail

Event Timeline

Quuxplusone requested review of this revision.Feb 18 2022, 8:44 AM
Quuxplusone created this revision.
Herald added 1 blocking reviewer(s): Restricted Project. · View Herald TranscriptFeb 18 2022, 8:44 AM
Mordante accepted this revision as: Mordante.Feb 28 2022, 10:36 AM

Based on the direction in D118736 this LGTM!
I agree there's no need to backport it to LLVM 14.

Quuxplusone accepted this revision.Feb 28 2022, 11:56 AM
This revision is now accepted and ready to land.Feb 28 2022, 11:56 AM