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

FreeBSD Manual Pages

  
 
  

home | help
std::ranges..._view::begin(3) C++ Standard Libarystd::ranges..._view::begin(3)

NAME
       std::ranges::take_view::begin - std::ranges::take_view::begin

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

	  Returns an iterator to the first element of the take_view.

	  1) Returns a std::counted_iterator or	a ranges::iterator_t<V>.
	  2) Returns a std::counted_iterator or	a ranges::iterator_t<const V>.

	  Overload  (1)	 does not participate in overload resolution if	V is a
       simple view (that
	  is, if V and const V are views with the same iterator	 and  sentinel
       types).

Parameters
	  (none)

Return value
	  The result depends on	the concepts satisfied by possible const-qual-
       ified underlying
	  view type Base_, which is V (for overload (1)) or const V (for over-
       load (2)).

	  Let base_ be the underlying view, count_ be the number passed	to the
       constructor
	  (0 if	default	initialized).

	  The underlying			   random_access_range
	  view satisfies
		...		  yes				      no
					       std::counted_itera-
       tor(ranges::begin(base_),
	  sized_range yes ranges::begin(base_)
					       ranges::range_differ-
       ence_t<Base_>(this->size()))
		      no  std::counted_iterator(ranges::begin(base_), count_)

Example
       // Run this code

	#include <ranges>
	#include <iostream>
	#include <string_view>
	using namespace	std::literals;

	int main()
	{
	    static constexpr auto sv = {"x"sv, "y"sv, ""sv, ""sv};

	    std::cout << *std::ranges::take_view(sv, 8).begin()	<< '\n';
	}

Output:
	x

	 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
	  P2393R1 C++20	     implicit conversions between signed and  unsigned
       made explicit
			     integer-class types might fail

See also
	  end		   returns an iterator or a sentinel to	the end
	  (C++20)	   (public member function)
	  counted_iterator  iterator  adaptor  that tracks the distance	to the
       end of the range
	  (C++20)	   (class template)
	  operator==	   compares a sentinel with an iterator	returned  from
       take_view::begin
	  (C++20)	   (function)

http://cppreference.com		  2022.07.31	 std::ranges..._view::begin(3)

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

home | help