add container_base base class, use it to reconstruct container from container_ref when calling erase