This works:
#include <string>
#include <unordered_set>
std::unordered_set<std::string> ValidValues {"one", "two", "three"};
with GCC 4.4+, Clang 3.1+, and MSVS2013+.
MSVS2010/2012 does not support the language feature called list initialization, wich is what you are doing.