title: Passing reference of parameter's (being itself a reference) target
body: <p>I have chained methods like that:</p>
  
  <pre><code>PureCommand Hasher::nameToPure(CommandName&amp; commandName) {
      return this-&gt;commandHash.find(commandName).value();
  }
  ByteCommand Hasher::nameToByte(CommandName&amp; commandName) {
      return this-&gt;pureToByte(this-&gt;nameToPure(commandName));
  }
  </code></pre>
  
  <p>The 2nd method is passing commandName which is wrong type as the 1st method needs reference, not an object. Then I've tried this:</p>
  
  <pre><code>ByteCommand Hasher::nameToByte(CommandName&amp; commandName) {
      return this-&gt;pureToByte(this-&gt;nameToPure(*&amp;commandName));
  }
  </code></pre>
  
  <p>as stated here: <a href="https://stackoverflow.com/questions/10172735/how-to-cast-convert-pointer-to-reference-in-c">How to cast/convert pointer to reference in C++</a> - because &amp;commandName gives me pointer... but it's passing an object again. What am I doing the silly way? As probably it's something trivial...</p>