cpp/experimental/ranges/concepts/Assignable

The concept specifies that an expression of the type and value category specified by  can be assigned to an lvalue expression whose type is specified by.

Given is satisfied only if
 * , an lvalue of type that refers to an object ,
 * , an expression such that is ,
 * , a distinct object that is equal to ,
 * (i.e., the assignment expression yields an lvalue referring to the left operand);
 * After evaluating :
 * is equal to, unless is a non-const xvalue that refers to  (i.e., the assignment is a self-move-assignment),
 * if is a glvalue:
 * If it is a non-const xvalue, the object to which it refers is in a valid but unspecified state;
 * Otherwise, the object it refers to is not modified;

There need not be any subsumption relationship between and.