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::adjacent_view::size	- std::ranges::adjacent_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. Equivalent to:

	using SizeType = decltype(ranges::size(base_));
	using CommonType = ranges::common_type_t<SizeType, std::size_t>;
	auto size = static_cast<CommonType>(ranges::size(base_));
	size -=	std::min<CommonType>(size, N - 1);
	return static_cast<SizeType>(size);

Parameters
	  (none)

Return value
	  The number of	elements, may be 0 if ranges::size(base_) is less than
       N.

Example
       // Run this code

	#include <ranges>

	int main()
	{
	    constexpr static auto v = {1, 2, 3,	4, 5, 6};

	    constexpr int width1 {4};
	    constexpr auto view1 {std::views::adjacent<width1>(v)};
	    static_assert(view1.size() == 3);
	    static_assert(view1.size() == (v.size() - width1 + 1));

	    constexpr int width2 {8};
	    constexpr auto view2 {std::views::adjacent<width2>(v)};
	    // window is too wide, so view2 has	no elements:
	    static_assert(view2.size() == 0);
	}

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::adjacent_view::size&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help