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

NAME
     std::ranges::forward_range - std::ranges::forward_range

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

	concept 			 forward_range			       =
     (since C++20)

	    ranges::input_range<T> &&
	std::forward_iterator<ranges::iterator_t<T>>;

	The forward_range concept is a refinement of range for which ranges::be-
     gin returns a
	model of forward_iterator.

Example
     // Run this code

      #include <forward_list>
      #include <queue>
      #include <ranges>
      #include <span>
      #include <stack>
      #include <tuple>

      const char* str{"not a forward range"};
      const char str2[] = "a forward range";
      static_assert(
	  std::ranges::forward_range<decltype("a forward range")> &&
	  !std::ranges::forward_range<decltype(str)> &&
	  std::ranges::forward_range<decltype(str2)> &&
	  !std::ranges::forward_range<std::stack<char>> &&
	  std::ranges::forward_range<std::forward_list<char>> &&
	  !std::ranges::forward_range<std::tuple<std::forward_list<char>>> &&
	  std::ranges::forward_range<std::span<char>> &&
	  !std::ranges::forward_range<std::queue<char>> &&
      "");

      int main() {}

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

home | help