Use std::unordered_set instead of boost