title: Why can't I use a reference type within a std::unordered_set?
body: <p>This won't work:</p>
  <pre><code>struct MyData {
      MyData();
      std::string foo;
      long bar;
  }
  
  class MyTest {
  public:
      std::unordered_set&lt;MyData&amp;&gt; data;
  }
  </code></pre>
  <p>I want to be as efficient as possible and don't want the objects to be copied when accessed or inserted.</p>
  <p>Why does <code>std::unordered_set&lt;MyData*&gt; data;</code> work, if the pointer is just the address and so is the reference?</p>