home | help
std::ranges...erface::back(3)  C++ Standard Libary std::ranges...erface::back(3)

NAME
     std::ranges::view_interface::back - std::ranges::view_interface::back

Synopsis
	constexpr decltype(auto) back()
	    requires  ranges::bidirectional_range<D>  &&		     (1)
     (since C++20)
	ranges::common_range<D>;
	constexpr decltype(auto) back() const
	    requires ranges::bidirectional_range<const D>  &&		     (2)
     (since C++20)
	ranges::common_range<const D>;

	The  default  implementation  of back() member function returns the last
     element in the
	view of the derived type. Whether the element is returned by value or by
     reference
	depends on the operator* of the iterator type.

	1) Let derived be static_cast<D&>(*this). Equivalent to return
	*ranges::prev(ranges::end(derived));.  The  behavior  is  undefined   if
     empty() is true
	(i.e.  the  beginning  iterator compares equal to the sentinel), even if
     the iterator
	obtained in the same way is dereferenceable.
	2) Same as (1), except that derived is static_cast<const D&>(*this).

Parameters
	(none)

Return value
	The last element in the view.

Notes
	In C++20, no type derived from std::ranges::view_interface in the  stan-
     dard library
	provides their own back() member function.

	However, following derived types cannot use the default implementations,
     as they
	never satisfy neither bidirectional_range nor common_range:

	  * std::ranges::basic_istream_view
	  * std::ranges::lazy_split_view
	  * std::ranges::split_view
	  * std::ranges::take_while_view

	The    inherited    back()    member	function    is	 available   for
     std::ranges::empty_view, but a
	call to it always results in undefined behavior.

Example
	 This section is incomplete
	 Reason: no example

See also
	rbegin		returns a reverse iterator to the beginning  of  a  con-
     tainer or array
	crbegin 	(function template)
	(C++14)
	ranges::rbegin	returns a reverse iterator to a range
	(C++20) 	(customization point object)
	ranges::crbegin returns a reverse iterator to a read-only range
	(C++20) 	(customization point object)

Category:
	  * Todo no example

http://cppreference.com 	   2024.06.10	   std::ranges...erface::back(3)

home | help