title: What's the use of the derived class as a template parameter?
body: <p>What's the purpose of this pattern? What is it called? It looked very strange when I saw it the first time, though I have now seen it many times.</p>
  
  <pre><code>template&lt;typename Derived&gt;
  struct Base {
    //...
  };
  
  struct Example : Base&lt;Example&gt; {
    //...
  };
  </code></pre>