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

P1209R0 erase_if(), erase() #236

Merged
merged 7 commits into from
Nov 1, 2019
Merged

Conversation

SuperWig
Copy link
Contributor

@SuperWig SuperWig commented Oct 30, 2019

Description

Resolves #55.

Checklist

If you're unsure about a box, leave it unchecked. A maintainer will help you.

  • I understand README.md. I also understand that acceptance of
    community PRs will be delayed until the test and CI systems are online.
  • Identifiers in product code changes are properly _Ugly as per
    https://eel.is/c++draft/lex.name#3.1 or there are no product code changes.
  • The STL builds successfully and all tests have passed (must be manually
    verified by an STL maintainer before CI is online, leave this unchecked for
    initial submission).
  • These changes introduce no known ABI breaks (adding members, renaming
    members, adding virtual functions, changing whether a type is an aggregate
    or trivially copyable, etc.).
  • These changes were written from scratch using only this repository and
    the C++ Working Draft as a reference (and any other cited standards).
    If they were derived from a project that's already listed in NOTICE.txt,
    that's fine, but please mention it. If they were derived from any other
    project (including Boost and libc++, which are not yet listed in
    NOTICE.txt), you must mention it here, so we can determine whether the
    license is compatible and what else needs to be done.

@SuperWig SuperWig requested a review from a team as a code owner October 30, 2019 17:58
stl/inc/yvals_core.h Outdated Show resolved Hide resolved
stl/inc/algorithm Outdated Show resolved Hide resolved
stl/inc/algorithm Outdated Show resolved Hide resolved
stl/inc/algorithm Outdated Show resolved Hide resolved
stl/inc/algorithm Outdated Show resolved Hide resolved
stl/inc/forward_list Outdated Show resolved Hide resolved
stl/inc/deque Outdated Show resolved Hide resolved
Copy link
Member

@StephanTLavavej StephanTLavavej left a comment

Choose a reason for hiding this comment

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

Thanks for working on this! If you can update this with the code movement and other relatively minor changes requested, we can write some tests and merge this.

stl/inc/yvals_core.h Outdated Show resolved Hide resolved
stl/inc/yvals_core.h Outdated Show resolved Hide resolved
stl/inc/yvals_core.h Outdated Show resolved Hide resolved
stl/inc/yvals_core.h Outdated Show resolved Hide resolved
stl/inc/yvals_core.h Outdated Show resolved Hide resolved
stl/inc/algorithm Outdated Show resolved Hide resolved
stl/inc/algorithm Outdated Show resolved Hide resolved
stl/inc/deque Outdated Show resolved Hide resolved
stl/inc/deque Outdated Show resolved Hide resolved
stl/inc/experimental/vector Show resolved Hide resolved
@StephanTLavavej
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@StephanTLavavej
Copy link
Member

Azure Pipelines is failing due to clang-format validation. Please run clang-format 9.0.0 before pushing the next round of updates.

For the <experimental/meow> changes, the addition of the deprecation macro is making those lines exceed our 120 column limit, causing clang-format to want to wrap them. For those functions, you can simply delete the comments saying // erase each element satisfying _Pred and so forth; they don't really provide any value (and our conventions regarding function comments have changed, so we no longer require them for simple functions).

@SuperWig
Copy link
Contributor Author

I just added them to the end of because I didn't know where else to put it.
I also re-ordered the _Erase helpers, wasn't sure if that was wanted or not but it looked more consistent this way.

Copy link
Member

@CaseyCarter CaseyCarter left a comment

Choose a reason for hiding this comment

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

LGTM modulo test coverage.

@BillyONeal
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Member

@StephanTLavavej StephanTLavavej left a comment

Choose a reason for hiding this comment

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

This looks perfect, with one stylistic ordering nitpick. To save time, I'll push a change for that, then work on porting this over to our MSVC-internal repo and writing simple tests (plus changes needed to remove <experimental/xutility> from the VS installer). We should be able to merge this tomorrow if all goes well.

stl/inc/map Outdated Show resolved Hide resolved
@StephanTLavavej
Copy link
Member

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@StephanTLavavej StephanTLavavej merged commit 28ec9a3 into microsoft:master Nov 1, 2019
@StephanTLavavej
Copy link
Member

This passed all of our tests, including libcxx's tests (modulo some truncation warnings in their test code that we'll need to fix in the near future). Thanks again, and congratulations for implementing your first C++20 feature here!

@miscco miscco mentioned this pull request Nov 2, 2019
7 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

P1209R0 erase_if(), erase()
6 participants