Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::ranges...e_view::size(3) C++ Standard Libarystd::ranges...e_view::size(3)

NAME
       std::ranges::enumerate_view::size - std::ranges::enumerate_view::size

Synopsis
	  constexpr	auto	 size()	   requires    ranges::sized_range<V>;
       (1) (since C++23)
	  constexpr auto size()	const requires	ranges::sized_range<const  V>;
       (2) (since C++23)

	  Returns    the    number   of	  elements.   Equivalent   to	return
       ranges::size(base_);, where
	  base_	is the underlying view.

Parameters
	  (none)

Return value
	  The number of	elements.

Example
       // Run this code

	#include <cassert>
	#include <forward_list>
	#include <ranges>
	#include <string_view>

	int main()
	{
	    constexpr static auto v1 = {1, 2, 3, 4, 5};
	    constexpr auto ev1{v1 | std::views::enumerate};
	    static_assert(ev1.size() ==	5);
	    static_assert(std::ranges::sized_range<decltype(v1)>);

	    auto v2 = std::forward_list{1, 2, 3, 4, 5};
	    auto ev2 {v2 | std::views::enumerate};
	    static_assert(not std::ranges::sized_range<decltype(v2)>);
	    // auto size = ev2.size(); // Error: v2 is not a sized range
	    assert(std::ranges::distance(v2) ==	5); // OK, distance  does  not
       require sized
						    //	range,	but  has  O(N)
       complexity here
	}

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)

http://cppreference.com		  2024.06.10	 std::ranges...e_view::size(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ranges::enumerate_view::size&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help