[1]
One implication of this requirement is that a const type is not Assignable.
For example, const int is not Assignable: if x is declared to be
of type const int, then x = 7 is illegal. Similarly, the type
pair<const int, int> is not Assignable.
[2]
The reason this says "x is a copy of y", rather than
"x == y", is that operator== is not necessarily defined: equality
is not a requirement of Assignable. If the type X is
EqualityComparable as well as Assignable, then a copy of x
should compare equal to x.