cmAlgorithms: Make cmRemoveDuplicates work with more containers.

Remove the accidental requirement that the input range must be a
std::vector.
This commit is contained in:
Stephen Kelly 2015-02-20 22:00:01 +01:00 committed by Brad King
parent cae45df772
commit ba959934a6
1 changed files with 3 additions and 2 deletions

View File

@ -258,14 +258,15 @@ typename Range::const_iterator cmRemoveMatching(Range &r, MatchRange const& m)
template<typename Range>
typename Range::const_iterator cmRemoveDuplicates(Range& r)
{
std::vector<typename Range::value_type> unique;
typedef std::vector<typename Range::value_type> UniqueVector;
UniqueVector unique;
unique.reserve(r.size());
std::vector<size_t> indices;
size_t count = 0;
for(typename Range::const_iterator it = r.begin();
it != r.end(); ++it, ++count)
{
const typename Range::iterator low =
const typename UniqueVector::iterator low =
std::lower_bound(unique.begin(), unique.end(), *it);
if (low == unique.end() || *low != *it)
{