C++ dereferencing for std::priority_queue::top : <p>Documentation states <code>std::priority_queue::top</code> returns a constant reference to the top element in the priority_queue, but when printing the top element, the unary dereference operator is not used. </p>

<pre><code>// priority_queue::top
#include &lt;iostream&gt;       // std::cout
#include &lt;queue&gt;          // std::priority_queue

int main ()
{
  std::priority_queue&lt;int&gt; mypq;

  mypq.push(10);
  mypq.push(20);
  mypq.push(15);

  std::cout &lt;&lt; "mypq.top() is now " &lt;&lt; mypq.top() &lt;&lt; '\n';

  return 0;
}
</code></pre>

<p>Is <code>top()</code> being implicitly dereferenced or is the returned value a copy?</p>
