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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::indirectly_readable	- std::indirectly_readable

Synopsis
	  Defined in header <iterator>
	  template< class In >

	      concept __IndirectlyReadableImpl =
		  requires(const In in)	{
		      typename std::iter_value_t<In>;
		      typename std::iter_reference_t<In>;
		      typename std::iter_rvalue_reference_t<In>;
		      {	*in } -> std::same_as<std::iter_reference_t<In>>;
		      {	ranges::iter_move(in) }	->
	  std::same_as<std::iter_rvalue_reference_t<In>>;
		  }							    &&
       (exposition
		  std::common_reference_with<
       only*)
		      std::iter_reference_t<In>&&, std::iter_value_t<In>&
		  > &&
		  std::common_reference_with<
		      std::iter_reference_t<In>&&,
	  std::iter_rvalue_reference_t<In>&&
		  > &&
		  std::common_reference_with<
		      std::iter_rvalue_reference_t<In>&&, const
	  std::iter_value_t<In>&

		  >;
	  template< class In >

	      concept		       indirectly_readable		     =
       (since C++20)

		  __IndirectlyReadableImpl<std::remove_cvref_t<In>>;

	  The  concept	indirectly_readable is modeled by types	that are read-
       able by applying
	  operator*, such as pointers, smart pointers, and input iterators.

	  Semantic requirements

	  Given	a value	i of type I, I models indirectly_readable only if  all
       concepts	it
	  subsumes are modeled and the expression *i is	equality-preserving.

	  Equality preservation

	  Expressions declared in requires expressions of the standard library
       concepts	are
	  required to be equality-preserving (except where stated otherwise).

http://cppreference.com		  2024.06.10	   std::indirectly_readable(3)

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

home | help