title: No known conversion from a pointer type to a reference to pointer
body: <p>I have a code that looks somewhat like this:</p>
  
  <pre><code>struct Ifoo: virtual public Ibar {  
  ...  
  }  
  
  struct foo : public Ifoo, public bar {  
  ...  
  }
  </code></pre>
  
  <p>And a function that is declared like:</p>
  
  <pre><code>bool function(Ifoo *&amp;ref);
  </code></pre>
  
  <p>And its called like:</p>
  
  <pre><code>foo *variable = new foo();
  bool value = function(dynamic_cast&lt;Ifoo*&gt;(foo));
  </code></pre>
  
  <p>I get the following error:</p>
  
  <pre><code>_No known conversion between types Ifoo* and Ifoo*&amp;_
  </code></pre>
  
  <p><strong>BUT</strong>, if i do the following:</p>
  
  <pre><code>Ifoo *variable = new foo();  
  bool value = function(foo);
  </code></pre>
  
  <p>Then it works! 
  I really don't understand why. Could you give me a hand?</p>