I'm confused as to what is going on in the following code snippet. Is move really necessary here? What would be the most optimal + safe way of returning the temporary set?
set<string> getWords()
{
    set<string> words;
    for (auto iter = wordIndex.begin(); iter != wordIndex.end(); ++iter)
    {
        words.insert(iter->first);
    }
    return move(words);
}
My calling code simply does set<string> words = foo.getWords()
 
     
     
    