Aren't these few lines just list.erase(list.begin(), list.begin() + 1)  or something like that? Seeing memmove around vectors feels suspicious..