Add 'skip(size_t)' range utility to skip a number of elements
This commit is contained in:
parent
9387abed81
commit
087a940fbe
|
@ -56,6 +56,24 @@ using IteratorOf = decltype(std::begin(std::declval<Range>()));
|
|||
template<typename Range>
|
||||
using ValueOf = typename Range::value_type;
|
||||
|
||||
template<typename Range>
|
||||
struct SkipView
|
||||
{
|
||||
auto begin() const { return std::next(std::begin(m_range), m_skip_count); }
|
||||
auto end() const { return std::end(m_range); }
|
||||
|
||||
Range m_range;
|
||||
size_t m_skip_count;
|
||||
};
|
||||
|
||||
inline auto skip(size_t count)
|
||||
{
|
||||
return make_view_factory([count](auto&& range) {
|
||||
using Range = decltype(range);
|
||||
return SkipView<decay_range<Range>>{std::forward<Range>(range), count};
|
||||
});
|
||||
}
|
||||
|
||||
template<typename Range, typename Filter>
|
||||
struct FilterView
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue
Block a user