title: How to get a type from type_info for template parameters
body: <p>I have a tree where each node basically looks like this:</p>
  
  <pre><code>struct node
  {
      std::unordered_set&lt;object*&gt; objects;
      std::map&lt;std::type_index,node&gt; children;
  };
  </code></pre>
  
  <p>When i iterate over the tree to add a new type, i want to do a check :</p>
  
  <pre><code>std::is_base_of&lt;base,derived&gt;
  </code></pre>
  
  <p>However, the only information i have for the derived type is a <code>type_index/type_info*</code>.</p>
  
  <p>Is there anyway i can transform the <code>type_info*</code> to a <code>template</code> argument?</p>
  
  <p>If not, what are my other options? I guess could call <code>decltype(*objects.begin())</code>, but that would require each set in every node to never be empty.</p>