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 <forward_list>
      #include <list>
      #include <ranges>
      #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 satis-
     fies
	(C++20) 		    forward_iterator
				    (concept)
	ranges::random_access_range specifies a range whose iterator type satis-
     fies
	(C++20) 		    random_access_iterator
				    (concept)

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

home | help