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

FreeBSD Manual Pages

  
 
  

home | help
std::ranges...erator::base(3) C++ Standard Libarystd::ranges...erator::base(3)

NAME
       std::ranges::transform_view::iterator::base    -	   std::ranges::trans-
       form_view::iterator::base

Synopsis
	  constexpr const ranges::iterator_t<Base>& base() const  &  noexcept;
       (1) (since C++20)
	  constexpr	    ranges::iterator_t<Base>	     base()	   &&;
       (2) (since C++20)

	  Returns the underlying iterator.

	  1) Returns a reference to the	underlying iterator.
	  2) Move constructs the result	from the underlying iterator.

Parameters
	  (none)

Return value
	  1) A reference to the	underlying iterator.
	  2) An	iterator move constructed from the underlying iterator.

Example
       // Run this code

	#include <algorithm>
	#include <iostream>
	#include <iterator>
	#include <ranges>

	int main()
	{
	    const auto v = { 0,	1, 2, 3, 4 };
	    auto x2 = [](int x)	{ return x << 1; };
	    std::ranges::transform_view	tv{ v, x2 };
	    std::ostream_iterator<int> ostr{ std::cout,	" " };

	    std::ranges::copy(v, ostr),	std::cout << '\n';
	    std::ranges::copy(tv.base(), ostr),	std::cout << '\n';
	    std::ranges::copy(tv, ostr), std::cout << '\n';
	}

Output:
	0 1 2 3	4
	0 1 2 3	4
	0 2 4 6	8

	 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 3533 C++20      the const& overload of base returns a copy   re-
       turns a reference
			      of the underlying	iterator
	  LWG  3593  C++20	 the  const&  overload	of  base  might	not be
       made noexcept
			      noexcept

http://cppreference.com		  2022.07.31	 std::ranges...erator::base(3)

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

home | help