Algo::RemoveIf

Moves all elements which do not match the predicate to the front of the range, while leaving all other elements is a constructed but unspecified state.