be a dereferenceable value of type In.
model indirectly_copyable_storable<In, Out>
only if after the initialization of the object obj
is equal to the value previously denoted by *i.
is an rvalue reference type, the resulting state
of the value denoted by *i
valid but unspecified ([lib.types.movedfrom]