title: emplace unordered_set in unordered_map
body: <p>How can I add a (statically defined) unordered_set to an unordered_map, without having to copy the unordered_set?</p>
  
  <p>I tried this:</p>
  
  <pre><code>std::unordered_map&lt;int, std::unordered_set&lt;std::string&gt;&gt; my_map;
  for (int i=0; i&lt;100; i++)
    my_map.emplace(i, {"foo", "bar"});
  </code></pre>
  
  <p>and this:</p>
  
  <pre><code>std::unordered_map&lt;int, std::unordered_set&lt;std::string&gt;&gt; my_map;
  for (int i=0; i&lt;100; i++)
    my_map.insert(i, std::move(std::unordered_set&lt;std::string&gt;({"foo", "bar"})));
  </code></pre>
  
  <p>but none of them compiles, I get these errors (respectively):</p>
  
  <pre><code>error: no matching function for call to ‘std::unordered_map&lt;int, std::unordered_set&lt;std::basic_string&lt;char&gt; &gt; &gt;::emplace(int&amp;, &lt;brace-enclosed initializer list&gt;)’
  </code></pre>
  
  <p>and</p>
  
  <pre><code>error: no matching function for call to ‘std::unordered_map&lt;int, std::unordered_set&lt;std::basic_string&lt;char&gt; &gt; &gt;::insert(int&amp;, std::remove_reference&lt;std::unordered_set&lt;std::basic_string&lt;char&gt; &gt; &gt;::type)’
  </code></pre>