std:: indirectly_readable

From cppreference.com
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
Defined in header <iterator>
( exposition only* )
template < class In >

concept indirectly_readable =

__IndirectlyReadableImpl < std:: remove_cvref_t < In >> ;
(since C++20)

The concept indirectly_readable is modeled by types that are readable 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).