title: Templates polymorphism
body: <p>I have this structure of classes.</p>
  <pre><code>class Interface {
    // ...
  };
  
  class Foo : public Interface {
    // ...
  };
  
  template &lt;class T&gt;
  class Container {
    // ...
  };
  </code></pre>
  <p>And I have this constructor of some other class Bar.</p>
  <pre><code>Bar(const Container&lt;Interface&gt; &amp; bar){
    // ...
  }
  </code></pre>
  <p>When I call the constructor this way I get a &quot;no matching function&quot; error.</p>
  <pre><code>Container&lt;Foo&gt; container ();
  
  Bar * temp = new Bar(container);
  </code></pre>
  <p>What is wrong? Are templates not polymorphic?</p>