title: Get base class for a type in class hierarchy
body: <p>Is is possible to get base class type in a class hierarchy?</p>
  
  <p>For example: </p>
  
  <pre><code>struct A{};
  struct B{} : public A;
  struct C{} : public B;
  </code></pre>
  
  <p>I want some template that will have <code>typedef Base&lt;T&gt;::Type</code> inside like this:</p>
  
  <pre><code>Base&lt;A&gt;::Type == A
  Base&lt;B&gt;::Type == A
  Base&lt;C&gt;::Type == A
  </code></pre>
  
  <p>Is this possible? What about the case when I have multiple inheritance?</p>