From ba959934a6a832e7d0a9f4bfc433e09aad1476f3 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Fri, 20 Feb 2015 22:00:01 +0100 Subject: cmAlgorithms: Make cmRemoveDuplicates work with more containers. Remove the accidental requirement that the input range must be a std::vector. --- Source/cmAlgorithms.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Source/cmAlgorithms.h b/Source/cmAlgorithms.h index ca4c1fd..161a2cb 100644 --- a/Source/cmAlgorithms.h +++ b/Source/cmAlgorithms.h @@ -258,14 +258,15 @@ typename Range::const_iterator cmRemoveMatching(Range &r, MatchRange const& m) template typename Range::const_iterator cmRemoveDuplicates(Range& r) { - std::vector unique; + typedef std::vector UniqueVector; + UniqueVector unique; unique.reserve(r.size()); std::vector 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) { -- cgit v0.12