title: Getting the raw pointer from a smart pointer
body: <p>Apologies if this is a duplicate.. Hopefully it is not. I searched through a long list of questions, but they all seemed to not really explain it.</p>
  
  <p>Here goes: In the follwoing</p>
  
  <pre><code>int main(int,char**){
      auto a = make_unique&lt;std::string&gt;("Hello World");
  
      // do stuff with either &amp;*a or a.get()
  
      return 0;
  }
  </code></pre>
  
  <p>is there any difference between <code>&amp;*a</code> and <code>a.get()</code> ? I know they both return the raw pointer value (unless <code>operator&amp;</code> is overloaded), but are there any runtime advantages to picking one over the other?</p>