| 119 | |
| 120 | template <typename Cmp = std::less<>, typename BidirIt, typename E> |
| 121 | constexpr auto equal_range(BidirIt begin, BidirIt end, E&& e, Cmp&& comp = {}) { |
| 122 | const auto first = lower_bound(begin, end, e, comp); |
| 123 | return std::pair{first, lower_bound(std::make_reverse_iterator(end), std::make_reverse_iterator(first), e, [&comp](auto&& lhs, auto&& rhs) { return comp(rhs, lhs); }).base()}; |
| 124 | } |
| 125 | |
| 126 | template <typename E = void, typename Cmp = std::less<E>, typename = void> |
| 127 | class indexing { |
no test coverage detected