Difference between revisions of "cpp/ranges/drop view"
From cppreference.com
D41D8CD98F (Talk | contribs) |
D41D8CD98F (Talk | contribs) |
||
Line 28: | Line 28: | ||
In all cases, {{tt|decltype((F))}} must model {{tt|std::convertible_to<D>}}. | In all cases, {{tt|decltype((F))}} must model {{tt|std::convertible_to<D>}}. | ||
− | {{c|drop_view}} models the concepts {{lconcept|contiguous_range}}, {{lconcept|random_access_range}}, {{lconcept|bidirectional_range}}, {{lconcept|forward_range}}, {{lconcept|input_range}}, {{lconcept|common_range | + | {{c|drop_view}} models the concepts {{lconcept|contiguous_range}}, {{lconcept|random_access_range}}, {{lconcept|bidirectional_range}}, {{lconcept|forward_range}}, {{lconcept|input_range}}, and {{lconcept|common_range}} when the underlying view {{c|V}} models respective concepts. |
{{cpp/expr-eq}} | {{cpp/expr-eq}} |
Revision as of 18:53, 2 June 2020
template< ranges::view V > class drop_view : public ranges::view_interface<drop_view<V>> |
(1) | (since C++20) |
namespace views { inline constexpr /*unspecified*/ drop = /*unspecified*/; |
(2) | (since C++20) |
1) A range adaptor consisting of elements of the underlying sequence, skipping the first N elements.
2) The expression views::drop(E,F) is expression-equivalent to (where
T
is std::remove_cvref_t<decltype((E))> and D
is ranges::range_difference_t<decltype((E))>):
- ((void)F, static_cast<T>(E)), if
T
is a ranges::empty_view; - T{ranges::begin(E) + std::min<D>(ranges::size(E), F)}, ranges::end(E), if
T
models bothrandom_access_range
andsized_range
, andT
is a specialization of
- std::span where
T::extent == std::dynamic_extent
, - std::basic_string_view,
- ranges::iota_view, or
- ranges::subrange;
- std::span where
- otherwise, drop_view{E, F}.
decltype((F))
must model std::convertible_to<D>
.drop_view models the concepts contiguous_range
, random_access_range
, bidirectional_range
, forward_range
, input_range
, and common_range
when the underlying view V models respective concepts.
Contents |
Expression-equivalent
Expression e is expression-equivalent to expression f, if
- e and f have the same effects, and
- either both are constant subexpressions or else neither is a constant subexpression, and
- either both are potentially-throwing or else neither is potentially-throwing (i.e. noexcept(e) == noexcept(f)).
Member functions
constructs a drop_view (public member function) | |
returns a copy of the underlying (adapted) view (public member function) | |
returns an iterator to the beginning (public member function) | |
returns an iterator or a sentinel to the end (public member function) | |
returns the number of elements. Provided only if the underlying (adapted) range satisfies sized_range . (public member function) |
Deduction guides
Example
This section is incomplete Reason: no example |