Page MenuHomePhabricator

[libc++][ranges] Implement `ranges::remove_copy{, _if}`.
ClosedPublic

Authored by var-const on Tue, Jul 26, 2:15 PM.

Diff Detail

Event Timeline

philnik created this revision.Tue, Jul 26, 2:15 PM
Herald added a project: Restricted Project. · View Herald TranscriptTue, Jul 26, 2:15 PM
huixie90 updated this revision to Diff 448352.Thu, Jul 28, 8:54 AM
  • finalise ranges::remove_copy{_if}
  • fixed a bug where ranges::remove_copy_if got the predicate inverted
  • enabled all the "robust" tests
  • added tests for ranges::remove_copy_if
huixie90 published this revision for review.Thu, Jul 28, 8:55 AM
huixie90 added reviewers: var-const, philnik.
Herald added a project: Restricted Project. · View Herald TranscriptThu, Jul 28, 8:56 AM
Herald added a reviewer: Restricted Project. · View Herald Transcript
var-const added inline comments.Fri, Jul 29, 11:56 PM
libcxx/include/algorithm
880

Missing the definition of remove_copy_result.

libcxx/test/std/algorithms/alg.modifying.operations/alg.remove/ranges_remove_copy.pass.cpp
50

Needs tests for indirectly_copyable and indirect_binary_predicate.

214

Need to count invocations of the predicate as well.

libcxx/test/std/algorithms/alg.modifying.operations/alg.remove/ranges_remove_copy_if.pass.cpp
62

This should be made consistent with the other test file.

220–221

These two files should ideally be almost mirror versions of each other.

var-const commandeered this revision.Fri, Jul 29, 11:57 PM
var-const removed a reviewer: var-const.
var-const retitled this revision from [libc++] Implement ranges::remove_copy{, _if} to [libc++][ranges] Implement `ranges::remove_copy{, _if}`..Mon, Aug 1, 2:02 AM
var-const updated this revision to Diff 448959.Mon, Aug 1, 2:06 AM

Address the existing feedback and rebase on main.

ldionne accepted this revision.Tue, Aug 2, 2:14 PM
This revision is now accepted and ready to land.Tue, Aug 2, 2:14 PM
This revision was automatically updated to reflect the committed changes.