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 ex-
     pression

	(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)

home | help