title: multiple inheritance and variadic templates
body: <p>Consider this code:</p>
  
  <pre><code>#include &lt;string&gt;
  #include &lt;iostream&gt;
  
  class Foo
  {
  protected:
      void foo(){ std::cout &lt;&lt; "foo" &lt;&lt; std::endl; }
  };
  
  class Bar
  {
  protected:
      void bar(){ std::cout &lt;&lt; "bar" &lt;&lt; std::endl; }
  };
  
  template&lt;typename... Args&gt;
  class Test: public Args...
  {
  public:
      void test()
      {
              this-&gt;foo();
              this-&gt;bar();
      }
  };
  
  int main(int argc, char** argv)
  {
      Test&lt;Foo, Bar&gt; test;
      test.test();
      return 0;
  }
  </code></pre>
  
  <p>As we can see compiler allows us to inherit from parameter pack. But when we could need this feature? How to use it properly?</p>
  
  <p><strong>Update</strong></p>
  
  <p>I want to see some use cases like <a href="https://stackoverflow.com/users/415784/nawaz">Nawaz</a> has provided.
  The only use case I see - policy based design, but would not be better if we enforce a list of needed policies like:</p>
  
  <pre><code>template&lt;typename T, typename Policy1, typename Policy2, typename Policy3&gt;
  class SomeClass: public Policy1, public Policy2, public Policy3 { ... }; 
  </code></pre>