Assignment
The contents of `u` are copied and the previous contents of `this` are destroyed. Capacity is preserved, or increases.
this->buffer() == u.buffer() && this->buffer().data() != u.buffer().data()
Linear in `u.size()`.
Strong guarantee. Calls to allocate may throw.