- Removes operator!= and inequality operators for basic_string (in C++20 mode).
- Adds operator<=> for basic_string (in C++20 mode).
Implements parts of P1614 'The Mothership Has Landed'.
Depends on D80891.
Paths
| Differential D80895
[libcxx] adds consistent comparison for `basic_string` AbandonedPublic Authored by cjdb on May 31 2020, 12:04 PM.
Details Summary
Implements parts of P1614 'The Mothership Has Landed'. Depends on D80891.
Diff Detail
Unit TestsFailed Event Timelinecjdb added a parent revision: D80891: [libcxx] adds consistent comparison for `basic_string_view`.May 31 2020, 12:05 PM miscco added inline comments.
curdeius added inline comments.
curdeius added inline comments.
cjdb edited reviewers, added: curdeius, Mordante, zoecarver, • Quuxplusone; removed: mclow.lists, jfb, mpark.May 11 2021, 10:39 AM cjdb retitled this revision from [libcxx] adds operator<=> for basic_string to [libcxx] adds consistent comparison for `basic_string`. Comment Actionsrebases to activate CI and get on people's radar Comment Actions @cjdb: I think you should go ahead and land the additions to "libcxx/test/std/strings/basic.string/string.nonmembers/" (other than ".../string_opcmp/", obviously). These look like good additions to the test suite, and should pass both before and after your spaceship-related changes. (It is mildly shocking that the old test suite lacked any tests where one operand was not a prefix of the other.)
This revision now requires changes to proceed.May 11 2021, 11:00 AM Comment Actions
SGTM, gimme an hour or so.
If you think that's shocking, check out our container comparison tests.
Comment Actions Do these changes require updating the status of papers?
cjdb added inline comments.
cjdb added inline comments.
Revision Contents
Diff 344475 libcxx/include/string
libcxx/test/std/strings/basic.string/string.nonmembers/string_opcmp/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opcmp/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opcmp/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opcmp/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opcmp/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_opgt=/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt/string_view_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/pointer_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_pointer.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_string_view.pass.cpp
libcxx/test/std/strings/basic.string/string.nonmembers/string_oplt=/string_view_string.pass.cpp
|
I think we should not delete them from the synopsis as they are used in pre C++20 mode. You could mark them with until C++17 and then spaceship with C++20