Skip to content

Instantly share code, notes, and snippets.

@dipterix-a
dipterix-a / move_if.hpp
Created September 2, 2020 06:54 — forked from addam/move_if.hpp
C++ move_if: remove elements from a sequence and move them over elsewhere
template<typename It, typename OutIt, typename UnaryPredicate>
It move_if(It begin, It end, OutIt dst, UnaryPredicate pred)
{
It last = end;
while (begin != last) {
if (pred(*begin)) {
*dst++ = std::move(*begin);
std::swap(*begin, *(--last));
} else {
++begin;