home | help
std::ranges...on_view::end(3)  C++ Standard Libary std::ranges...on_view::end(3)

NAME
     std::ranges::common_view::end - std::ranges::common_view::end

Synopsis
	constexpr  auto  end() requires (!__simple_view<V>);	      (1) (since
     C++20)
	constexpr auto end() const requires ranges::range<const V>;  (2)  (since
     C++20)

	1) Returns an iterator representing the end of the common_view, that is:
	  * ranges::begin(base_) + ranges::size(base_), if both
	    ranges::random_access_range<V> and ranges::sized_range<V> are satis-
     fied,
	  * std::common_iterator<ranges::iterator_t<V>,
	    ranges::sentinel_t<V>>(ranges::end(base_)) otherwise.
	Here  base_ (the name is for exposition purposes only) is the underlying
     view.
	2) Same as (1), but V is const-qualified.

Parameters
	(none)

Return value
	An iterator representing the end of the underlying view.

Example
     // Run this code

      #include <iostream>
      #include <numeric>
      #include <ranges>

      int main()
      {
	  constexpr int n{4};

	  constexpr auto v1 = std::views::iota(1)
			    | std::views::take(n)
			    | std::views::common
			    ;
	  constexpr auto v2 = std::views::iota(2)
			    | std::views::take(n)
			    ;
	  const int product = std::inner_product(v1.begin(), v1.end(),
						 v2.begin(),
						 0);
	  std::cout << product << '\n';
      }

Output:
      40

	Defect reports

	The following behavior-changing defect	reports  were  applied	retroac-
     tively to
	previously published C++ standards.

	   DR	  Applied to		Behavior as published		 Correct
     behavior
	LWG 4012 C++20	    non-const overload missed simple-view check added

See also
	begin	      returns an iterator to the beginning
	(C++20)       (public member function)
	ranges::begin returns an iterator to the beginning of a range
	(C++20)       (customization point object)
	ranges::end   returns a sentinel indicating the end of a range
	(C++20)       (customization point object)

http://cppreference.com 	   2024.06.10	   std::ranges...on_view::end(3)

home | help