boostorg / algorithm

Boost.org algorithm module
http://boost.org/libs/algorithm
Boost Software License 1.0
112 stars 105 forks source link

Add `move_while` and `move_until` new algorithms #109

Open denzor200 opened 1 year ago

denzor200 commented 1 year ago

Hello, i have an interest to be contributor of this library. I decided to start with this small PR to get experience and to receive feedback and "ping response" from community.

denzor200 commented 1 year ago

CI is broken, so this PR tested here: https://godbolt.org/z/b4vGMnK55

jgopel commented 1 year ago

question: Forgive my ignorance - why not just use a std::move_iterator? What does this accomplish that that doesn't already do?

denzor200 commented 1 year ago

why not just use a std::move_iterator?

I had same question for std::move, but it exists. Look:

std::move(v.begin(), v.end(), std::back_inserter(l));

does the same result as:

std::copy(std::make_move_iterator(v.begin()),
          std::make_move_iterator(v.end()),
          std::back_inserter(l));

What does this accomplish that that doesn't already do?

just readability, and those people who use boost::algorithm::copy_while and boost::algorithm::copy_until also need for move_while and move_until.