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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::ranges::zip_transform_view::size	 -     std::ranges::zip_trans-
       form_view::size

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

	  Returns the number of	elements in the	 zip_transform_view.  Provided
       only if each
	  underlying (adapted) range satisfies sized_range.

	  1,2) Equivalent to: return zip_.size();.

Parameters
	  (none)

Return value
	  The number of	elements, which	is the minimum size among all sizes of
       adapted views.

Example
       // Run this code

	#include <algorithm>
	#include <cassert>
	#include <deque>
	#include <forward_list>
	#include <functional>
	#include <iostream>
	#include <ranges>
	#include <vector>

	int main()
	{
	    auto x = std::vector{1, 2, 3, 4, 5};
	    auto y = std::deque<short>{10, 20, 30};
	    auto z = std::forward_list{100., 200.};

	    auto v1 = std::views::zip_transform(std::plus{}, x,	y);
	    assert(v1.size() ==	std::min(x.size(), y.size()));
	    assert(v1.size() ==	3);
	    for	(int i : v1)
		std::cout << i << ' ';
	    std::cout << '\n';

	    [[maybe_unused]]  auto v2 =	std::views::zip_transform(std::plus{},
       x, z);
	//  auto sz = v2.size(); // Error: z doesn't have size(),  so  neither
       does v2
	    static_assert(not std::ranges::sized_range<decltype(z)>);
	}

Output:
	11 22 33

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

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

home | help