std::ranges..._view::size(3)
π NAME π
std::ranges::take_view::size β std::ranges::take_view::size. bestie, yes, the NAME section really says it twice, and that is iconic of it. This is the page from the C++ Standard Libary manual, page std::ranges..._view::size(3), and it's giving βhow many elements are we actually keeping?β energy. Periodt. π
πΈ Synopsis πΈ
Okay so you've got two constexpr overloads, both since C++20:
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. No cap, that's the whole vibe. π«Ά
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) β literally no parameters, bestie. None. Zero. The vibe check is passed by the object itself. π
β¨ Return value β¨
The number of elements. That's it. That's the tea. π
π§ 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).
source: cppreference.com Β· date: 2024.06.10 Β· page: std::ranges..._view::size(3) β okay bestie, that's the whole page, go get that size and stan a sized range for me πβ¨π¦
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms