38 template <
typename Iterator,
typename KeyGetter>
42 using Key = std::decay_t<decltype(KeyGetter()(*Iterator()))>;
44 using Group = std::pair<Key, Range<Iterator>>;
97 return not(lhs == rhs);
103 KeyGetter keyGetter = KeyGetter())
123 if (start ==
m_end) {
127 return std::find_if_not(std::next(start),
m_end,
128 [
this, start](
const auto&
x) {
135 template <
typename Container,
typename KeyGetter>
137 const Container& container, KeyGetter keyGetter) {
138 return {container.begin(), container.end(), std::move(keyGetter)};