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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::ranges::viewable_range - std::ranges::viewable_range

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

	  concept viewable_range =
	  ranges::range<T> &&
	  ((ranges::view<std::remove_cvref_t<T>> &&
	  std::constructible_from<std::remove_cvref_t<T>,	 T>)	    ||
       (since C++20)
	  (!ranges::view<std::remove_cvref_t<T>> &&
	  (std::is_lvalue_reference_v<T> ||

	  (std::movable<std::remove_reference_t<T>> &&
	  !/*is-initializer-list*/<T>))));

	  The viewable_range concept is	a refinement of	range that describes a
       range that can
	  be safely converted into a view.

	  The constant /*is-initializer-list*/<T> is true if and only if
	  std::remove_cvref_t<T> is a specialization of	std::initializer_list.

	 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	3481   C++20	   viewable_range  accepted  an	 lvalue	 of  a
       rejects
			      move-only	view
	  P2415R2  C++20      viewable_range only  accepted  non-view  rvalues
       accepts more types
			      that are borrowed_range

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

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

home | help