mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
cmAlgorithms: Relax iterator requirement for cmRemoveIndices.
Require only forward iterators from the range.
This commit is contained in:
@@ -237,12 +237,15 @@ typename Range::const_iterator cmRemoveIndices(Range& r, InputRange const& rem)
|
||||
{
|
||||
typename InputRange::const_iterator remIt = rem.begin();
|
||||
|
||||
typename Range::iterator writer = r.begin() + *remIt;
|
||||
typename Range::iterator writer = r.begin();
|
||||
std::advance(writer, *remIt);
|
||||
++remIt;
|
||||
size_t count = 1;
|
||||
for ( ; writer != r.end() && remIt != rem.end(); ++count, ++remIt)
|
||||
{
|
||||
writer = ContainerAlgorithms::RemoveN(writer, r.begin() + *remIt, count);
|
||||
typename Range::iterator pivot = r.begin();
|
||||
std::advance(pivot, *remIt);
|
||||
writer = ContainerAlgorithms::RemoveN(writer, pivot, count);
|
||||
}
|
||||
writer = ContainerAlgorithms::RemoveN(writer, r.end(), count);
|
||||
return writer;
|
||||
|
||||
Reference in New Issue
Block a user