# std::ranges::take_view<V>::size

From cppreference.com
< cpp‎ | ranges‎ | take view

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 underlying counter (equals to ​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 (C++20) | returns an integer equal to the size of a range (customization point object)
ranges::ssize (C++20) | returns a signed integer equal to the size of a range (customization point object)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/take_view/size&oldid=173553"