Don't we also want a check like,

iter = objects_begin();
iter2 = objects_begin();
assert(iter->first == "foo");
iter = iter2;
assert(iter == objects_end());

to capture the operator= where rhs is at the end?