Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

P1614R2 Adding Spaceship <=> To The Library #1678

Merged
merged 43 commits into from
Feb 25, 2021

Conversation

StephanTLavavej
Copy link
Member

Fixes #62.

This merges feature/spaceship into main with one additional commit. That commit fixes the default template argument of take_view::sentinel to follow WG21-N4878 [range.take.sentinel], which was the only remaining work for Clause 24 Ranges. (Note that take_while_view::sentinel was already doing the right thing.)

I plan to mark this feature as complete after merging this PR, with a small amount of remaining work tracked by various issues:

This feature sets a record for the largest number of contributors in the STL's history! (The previous record-holder was C++17 <filesystem>.) Thanks to everyone who implemented spaceship machinery:

🚀 🛸 🪐

StephanTLavavej and others added 30 commits July 20, 2020 18:40
feature/spaceship: Merge microsoft#1049 (fix <compare> and simplify guards)
Co-authored-by: Casey Carter <Casey@Carter.net>
Co-authored-by: Stephan T. Lavavej <stl@microsoft.com>
feature/spaceship: Merge VS 2019 16.8 Preview 1 toolset update
feature/spaceship: Merge Standard_D16as_v4 VM update
Co-authored-by: Casey Carter <Casey@Carter.net>
Co-authored-by: Curtis Bezault <cubezaul@microsoft.com>
feature/spaceship: Merge fix for test timing assumption
feature/spaceship: Merge VS 2019 16.8 Preview 2 toolset update
Co-authored-by: Ahana Mukhopadhyay <t-ahmukh@microsoft.com>
Co-authored-by: Casey Carter <Casey@Carter.net>
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
feature/spaceship: Merge toolset update
feature/spaceship: Merge CI changes to pick up microsoft#1337. This is a clean merge with no additional edits.
feature/spaceship: Merge toolset update
feature/spaceship: Merge toolset update
feature/spaceship: Merge CI update
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
NOTE: there was much complicated conflict resolution in `<vector>` to reconcile the work on this branch with the `constexpr vector` work from main.
cbezault and others added 2 commits February 22, 2021 13:59
Co-authored-by: Ahana Mukhopadhyay <t-ahmukh@microsoft.com>
Co-authored-by: Casey Carter <Casey@Carter.net>
Co-authored-by: Curtis Bezault <cubezaul@microsoft.com>
Co-authored-by: Stephan T. Lavavej <stl@nuwen.net>
@StephanTLavavej StephanTLavavej added cxx20 C++20 feature spaceship C++20 operator <=> labels Feb 23, 2021
@StephanTLavavej StephanTLavavej requested a review from a team as a code owner February 23, 2021 01:42
@StephanTLavavej StephanTLavavej mentioned this pull request Feb 23, 2021
@StephanTLavavej
Copy link
Member Author

Mirrored to internal MSVC-PR-306138 after I had a successful x86chk build and stl compiler test run.

stl/inc/xstring Show resolved Hide resolved
stl/inc/xstring Show resolved Hide resolved
@AnjuDel
Copy link
Member

AnjuDel commented Feb 23, 2021

I checked that all my work was correctly merged and it looks it is, with a small minor exception.

stl/inc/forward_list Outdated Show resolved Hide resolved
stl/inc/list Outdated Show resolved Hide resolved
stl/inc/map Outdated Show resolved Hide resolved
stl/inc/ranges Show resolved Hide resolved
stl/inc/set Outdated Show resolved Hide resolved
stl/inc/vector Outdated Show resolved Hide resolved
stl/inc/vector Outdated Show resolved Hide resolved
Copy link
Contributor

@mnatsuhara mnatsuhara left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only comments I could find were pathetic whitespace issues - feel free to ignore to avoid rerunning the tests! A monumental amount of work - looks good to me!

_NODISCARD strong_ordering operator<=>(const shared_ptr<_Ty1>& _Left, const shared_ptr<_Ty2>& _Right) noexcept {
return _Left.get() <=> _Right.get();
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just so I can comment on something, do we need this blank line here? :)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll remove these lines in a followup PR 😺

_NODISCARD strong_ordering operator<=>(const shared_ptr<_Ty>& _Left, nullptr_t) noexcept {
return _Left.get() <=> static_cast<typename shared_ptr<_Ty>::element_type*>(nullptr);
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto!

Suggested change

@mnatsuhara mnatsuhara removed their assignment Feb 24, 2021
@StephanTLavavej StephanTLavavej merged commit b52c379 into microsoft:main Feb 25, 2021
@StephanTLavavej StephanTLavavej deleted the land_the_spaceship branch February 25, 2021 00:20
@StephanTLavavej
Copy link
Member Author

Thanks everyone - we're now a warp-capable civilization!

🚀 🛸 ☄️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cxx20 C++20 feature spaceship C++20 operator <=>
Projects
None yet
Development

Successfully merging this pull request may close these issues.

P1614R2 Adding Spaceship <=> To The Library
10 participants