Reference operator in function name during declaration
<p>I understand that this</p>

<pre><code>double grade(int &amp;hw) {}
</code></pre>

<p>is passing an argument by reference. And that this</p>

<pre><code>double a;
double &amp;b = a;
</code></pre>

<p>is making b a reference to a.</p>

<p>But what about this</p>

<pre><code>istream &amp;read_hw(istream &amp;in) {}
</code></pre>

<p>What does the reference operator before the name of the function signify, and in what cases would the effect be desired?</p>
