|This is a clever trick to
allow index access to auto_vector to be used as an lvalue (the left-hand side
of the assignment). Ownership of the new object has to be transferred to
auto_vector. The old entry should be released in the process.
|This is done by overloading
operator to return a helper object that serves as an lvalue