Defined in header
template< class Out, class T >
concept indirectly_writable =
The concept indirectly_writable<Out, T> specifies the requirements for writing a value whose type and value category are encoded by
T into an iterator
Out's referenced object.
 Semantic requirements
e be an expression such that decltype((e)) is
o be a dereferenceable object of type
Out, then indirectly_writable<Out, T> is modeled only if:
- If std::indirectly_readable<Out> is modeled and std::iter_value_t<Out> is the same type as std::decay_t<T>, then *o after any above assignment is equal to the value of
ebefore the assignment.
o is not required to be dereferenceable after evaluating any of the assignment expressions above. If
e is an xvalue, the resulting state of the object it denotes is valid but unspecified.
 Equality preservation
Expressions declared in requires-expressions of the standard library concepts are required to be equality-preserving (except where stated otherwise).
The only valid use of operator* is on the left side of an assignment expression. Assignment through the same value of an indirectly writable type may happen only once.
The required expressions with
indirectly_readable objects with prvalue
reference types from satisfying the syntactic requirements of
indirectly_writable by accident, while permitting proxy references to continue to work as long as their constness is shallow. See Ranges TS issue 381.