diff --git a/generator/altitude_generator.cpp b/generator/altitude_generator.cpp index 68f15a438..98fcf876e 100644 --- a/generator/altitude_generator.cpp +++ b/generator/altitude_generator.cpp @@ -172,7 +172,7 @@ void BuildRoadAltitudes(std::string const & mwmPath, AltitudeGetter & altitudeGe } { // Altitude offsets serialization. - CHECK(base::IsSortedAndUnique(offsets.begin(), offsets.end()), ()); + CHECK(base::IsSortedAndUnique(offsets), ()); succinct::elias_fano::elias_fano_builder builder(offsets.back(), offsets.size()); for (uint32_t offset : offsets) diff --git a/generator/gen_mwm_info.hpp b/generator/gen_mwm_info.hpp index 7958325f6..fe50c6e8e 100644 --- a/generator/gen_mwm_info.hpp +++ b/generator/gen_mwm_info.hpp @@ -89,7 +89,7 @@ public: m_version = Version::V0; } - ASSERT(std::is_sorted(std::cbegin(m_data), std::cend(m_data)), ()); + CHECK(base::IsSortedAndUnique(m_data), ()); } private: diff --git a/libs/base/stl_helpers.hpp b/libs/base/stl_helpers.hpp index 3fa4a2815..24b9f5911 100644 --- a/libs/base/stl_helpers.hpp +++ b/libs/base/stl_helpers.hpp @@ -304,6 +304,12 @@ bool IsSortedAndUnique(Iter beg, Iter end, Compare comp) return true; } +template +bool IsSortedAndUnique(ContT const & cont) +{ + return IsSortedAndUnique(cont.begin(), cont.end(), std::less<>()); +} + template Iter RemoveIfKeepValid(Iter beg, Iter end, Compare comp) { @@ -328,12 +334,6 @@ Iter RemoveIfKeepValid(Iter beg, Iter end, Compare comp) return end; } -template -bool IsSortedAndUnique(Iter beg, Iter end) -{ - return IsSortedAndUnique(beg, end, std::less::value_type>()); -} - struct DeleteFunctor { template diff --git a/libs/platform/duration.cpp b/libs/platform/duration.cpp index 63576a826..e490d4a52 100644 --- a/libs/platform/duration.cpp +++ b/libs/platform/duration.cpp @@ -50,7 +50,7 @@ std::string_view GetUnitsGroupingSeparator(Locale const & locale) bool IsUnitsOrderValid(std::initializer_list units) { - return base::IsSortedAndUnique(units.begin(), units.end()); + return base::IsSortedAndUnique(units); } } // namespace diff --git a/libs/search/features_layer_matcher.cpp b/libs/search/features_layer_matcher.cpp index 68e0729b5..4ef8ff029 100644 --- a/libs/search/features_layer_matcher.cpp +++ b/libs/search/features_layer_matcher.cpp @@ -73,7 +73,7 @@ std::vector const & FeaturesLayerMatcher::GetPlaceAddrFeatures(uint32_ res.first.push_back(fid); }); - ASSERT(base::IsSortedAndUnique(res.first.begin(), res.first.end()), ()); + ASSERT(base::IsSortedAndUnique(res.first), ()); } return res.first; } diff --git a/libs/search/house_detector.cpp b/libs/search/house_detector.cpp index 63105b215..4776af5f6 100644 --- a/libs/search/house_detector.cpp +++ b/libs/search/house_detector.cpp @@ -833,7 +833,7 @@ int HouseDetector::LoadStreets(vector const & ids) { // LOG(LDEBUG, ("IDs = ", ids)); - ASSERT(base::IsSortedAndUnique(ids.begin(), ids.end()), ()); + ASSERT(base::IsSortedAndUnique(ids), ()); // Check if the cache is obsolete and need to be cleared. if (!m_id2st.empty()) diff --git a/libs/search/search_tests/mem_search_index_tests.cpp b/libs/search/search_tests/mem_search_index_tests.cpp index f16330bb6..b8d28accd 100644 --- a/libs/search/search_tests/mem_search_index_tests.cpp +++ b/libs/search/search_tests/mem_search_index_tests.cpp @@ -58,7 +58,7 @@ public: vector StrictQuery(string const & query, string const & lang) const { auto prev = m_index.GetAllIds(); - TEST(base::IsSortedAndUnique(prev.cbegin(), prev.cend()), ()); + TEST(base::IsSortedAndUnique(prev), ()); ForEachNormalizedToken(query, [&](strings::UniString const & token) {