std::ranges::take_view::size(3)

NAME
std::ranges::take_view::size - std::ranges::take_view::size

Synopsis
   constexpr auto size() requires ranges::sized_range<V>; (1) (since C++20)
   constexpr auto size() const requires ranges::sized_range<const V>; (2) (since C++20)
   Returns the number of elements, which is the smaller of the count passed to the
   constructor and the size of the underlying view.
   Let base_ be the underlying view, count_ be the number passed to the constructor (0
   if default constructed). Equivalent to
 auto n = ranges::size(base_);
 return ranges::min(n, static_cast<decltype(n)>(count_));

Parameters
   (none)

Return value
   The number of elements.

Example
// Run this code
 #include <iostream>
 #include <ranges>
 int main()
 {
     constexpr int arr[]{1, 2, 3};
     for (int i = 0; i != 6; ++i)
     {
         const auto tv = std::ranges::take_view{arr, i};
         std::cout << tv.size() << ' ';
     }
     std::cout << '\n';
 }

Output:
 0 1 2 3 3 3

See also
   ranges::size returns an integer equal to the size of a range
   (C++20) (customization point object)
   ranges::ssize returns a signed integer equal to the size of a range
   (C++20) (customization point object)