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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::ranges::bidirectional_range	- std::ranges::bidirectional_range

Synopsis
	  Defined in header <ranges>
	  template< class T >

	  concept		      bidirectional_range		     =
       (since C++20)

	  ranges::forward_range<T> &&
	  std::bidirectional_iterator<ranges::iterator_t<T>>;

	  The bidirectional_range concept is a refinement of range  for	 which
       ranges::begin
	  returns a model of bidirectional_iterator.

Example
       // Run this code

	#include <ranges>
	#include <list>
	#include <forward_list>
	#include <set>
	#include <unordered_set>

	int main()
	{
	    static_assert(
		    std::ranges::bidirectional_range<std::set<int>> and
		not  std::ranges::bidirectional_range<std::unordered_set<int>>
       and
		    std::ranges::bidirectional_range<std::list<int>> and
		not std::ranges::bidirectional_range<std::forward_list<int>>
	    );
	}

See also
	  ranges::forward_range	      specifies	a range	 whose	iterator  type
       satisfies
	  (C++20)		      forward_iterator
				      (concept)
	  ranges::random_access_range  specifies  a  range whose iterator type
       satisfies
	  (C++20)		      random_access_iterator
				      (concept)

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

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

home | help