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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::counted_iterator::base - std::counted_iterator::base

Synopsis
	  constexpr const I& base() const& noexcept; (1) (since	C++20)
	  constexpr I base() &&;		     (2) (since	C++20)

	  Returns the underlying base iterator.

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

Parameters
	  (none)

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

Exceptions
	  May throw implementation-defined exceptions.

Example
       // Run this code

	#include <algorithm>
	#include <iostream>
	#include <iterator>
	#include <type_traits>
	#include <vector>

	int main()
	{
	    std::vector<int> v{0, 1, 2,	3, 4};

	    std::reverse_iterator<std::vector<int>::iterator>	reverse{v.rbe-
       gin()};

	    std::counted_iterator counted{reverse, 3};

	    static_assert(std::is_same<
		decltype(counted.base()),
		std::reverse_iterator<std::vector<int>::iterator> const&
	    >{});

	    std::cout << "Print	with reverse_iterator: ";
	    for	(auto r	= counted.base(); r != v.rend(); ++r)
		std::cout << *r	<< ' ';
	    std::cout << '\n';

	    std::cout << "Print	with counted_iterator: ";
	    for	(; counted != std::default_sentinel; ++counted)
		std::cout << counted[0]	<< ' ';
	    std::cout << '\n';
	}

Output:
	Print with reverse_iterator: 4 3 2 1 0
	Print with counted_iterator: 4 3 2

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

See also
	  operator*  accesses the pointed-to element
	  operator-> (public member function)
	  (C++20)
	  count	     returns the distance to the end
	  (C++20)    (public member function)

http://cppreference.com		  2024.06.10	 std::counte...erator::base(3)

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

home | help