[libcxx] adds operator<=> for basic_string
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
I think you are missing this specialization below. That said, I am unsure whether this is actually needed at all.
Applies @miscco's suggestions.
Thanks! I was wondering how to address this problem...
I assume Howard had his reasons, so I've moved it outside of the block, just in case. Will delete at someone's request.
That sounds reasonable. Thanks!
Shouldn't notes like "(Until C++17)" be just trailing comments?
I may be missing something, but it seems that there are no tests for the basic cases like:
"abc" < "acb"
"cba" > "aaa"
All (non-equal) tests fall into the shorter/longer check.
Done. I also added these tests to the inequality tests.
You changed the order of parameters and now this overload is the same as the one below.
And BTW, why removing spaces in <...>? :)
I think you should mark the overloads removed in C++20 as removed in C++20 or until C++17 instead of just C++17 as the latter is misleading.
Return type is not bool -> see below in standard.
This overload doesn't seem to be marked noexcept by the standard: http://eel.is/c++draft/string.syn.
Where is the return type? Standard marks it as see below.
I think you should just use noexcept instead of _NOEXCEPT as it should be always available in C++20.
This _NOEXCEPT should be kept as is of course.