title: const& , & and && specifiers for member functions in C++
body: <p>Recently I was reading through the <a href="http://www.boost.org/doc/libs/release/libs/optional/doc/html/index.html">API of <code>boost::optional</code></a> and came across the lines:</p>
  
  <pre><code>T const&amp; operator *() const&amp; ;
  T&amp;       operator *() &amp; ;
  T&amp;&amp;      operator *() &amp;&amp; ;
  </code></pre>
  
  <p>I also wrote my own program  that defines member functions as const&amp;, &amp; and &amp;&amp; (Note that I am not speaking about the return type, but the specifiers just before the semi-colons) and they seems to work fine. </p>
  
  <p>I know what it means to declare a member function const, but can anyone explain what it means to declare it  const&amp;, &amp; and &amp;&amp;.</p>