table of contents
        
      
      
    | std::ranges::take_view::begin(3) | C++ Standard Libary | std::ranges::take_view::begin(3) | 
NAME¶
std::ranges::take_view::begin - std::ranges::take_view::begin
Synopsis¶
 constexpr auto begin() requires (!__SimpleView<V>);
    (1) (since C++20)
  
   constexpr auto begin() const requires ranges::range<const V>;
    (2) (since C++20)
  
   Returns an iterator to the first element of the take_view.
  
   1) Returns a std::counted_iterator or a ranges::iterator_t<V>.
  
   2) Returns a std::counted_iterator or a ranges::iterator_t<const
  V>.
  
   Overload (1) does not participate in overload resolution if V is a
    simple view (that
  
   is, if V and const V are views with the same iterator and sentinel
  types).
Parameters¶
(none)
Return value¶
 The result depends on the concepts satisfied by possible
    const-qualified underlying
  
   view type Base_, which is V (for overload (1)) or const V (for
    overload (2)).
  
   Let base_ be the underlying view, count_ be the number passed to the
    constructor
  
   (0 if default initialized).
  
   The underlying random_access_range
  
   view satisfies
  
   ... yes no
  
   std::counted_iterator(ranges::begin(base_),
  
   sized_range yes ranges::begin(base_)
  
   ranges::range_difference_t<Base_>(this->size()))
  
   no std::counted_iterator(ranges::begin(base_), count_)
Example¶
// Run this code
  
   #include <ranges>
  
   #include <iostream>
  
   #include <string_view>
  
   using namespace std::literals;
  
   int main()
  
   {
  
   static constexpr auto sv = {"∀x"sv, "∃y"sv,
    "ε"sv, "δ"sv};
  
   std::cout << *std::ranges::take_view(sv, 8).begin() << '\n';
  
   }
Output:¶
∀x
  
   Defect reports
  
   The following behavior-changing defect reports were applied retroactively to
  
   previously published C++ standards.
  
   DR Applied to Behavior as published Correct behavior
  
   P2393R1 C++20 implicit conversions between signed and unsigned made explicit
  
   integer-class types might fail
See also¶
 end returns an iterator or a sentinel to the end
  
   (C++20) (public member function)
  
   counted_iterator iterator adaptor that tracks the distance to the end of the
    range
  
   (C++20) (class template)
  
   operator== compares a sentinel with an iterator returned from
    take_view::begin
  
   (C++20) (function)
| 2022.07.31 | http://cppreference.com |