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

FreeBSD Manual Pages

  
 
  

home | help
std::ranges..._view::size(3)  C++ Standard Libary std::ranges..._view::size(3)

NAME
       std::ranges::stride_view::size -	std::ranges::stride_view::size

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

	  Returns the number of	elements.

	  Let  base_  be  the underlying view and stride_ be the stored	stride
       value. Equivalent
	  to:

	return		__to_unsigned_like(__div_ceil(ranges::distance(base_),
       stride_));

Parameters
	  (none)

Return value
	  The  number  of  elements. The returned value	is calculated as if by
       expression

	  (ranges::size(base_) / stride_) + ((ranges::size(base_) % stride_  ?
       1 : 0).

Example
       // Run this code

	#include <forward_list>
	#include <ranges>

	int main()
	{
	    namespace vs = std::views;
	    constexpr static auto v = {1, 2, 3,	4, 5};
	    static_assert
	    (
		vs::stride(v, 1).size()	== 5 and
		vs::stride(v, 2).size()	== 3 and
		vs::stride(v, 3).size()	== 2 and
		vs::stride(v, 4).size()	== 2 and
		vs::stride(v, 5).size()	== 1 and
		vs::stride(v, 6).size()	== 1
	    );

	    std::forward_list list{v};
	//  auto s = vs::stride(list, 2).size(); // Error: not a sized_range
	}

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..._view::size(3)

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

home | help