title: how do you make a heterogeneous boost::map?
body: <p>I want to have a map that has a homogeneous key type but heterogeneous data types.</p>
  
  <p>I want to be able to do something like (pseudo-code):</p>
  
  <pre><code>boost::map&lt;std::string, magic_goes_here&gt; m;
  m.add&lt;int&gt;("a", 2);
  m.add&lt;std::string&gt;("b", "black sheep");
  
  int i = m.get&lt;int&gt;("a");
  int j = m.get&lt;int&gt;("b"); // error!
  </code></pre>
  
  <p>I could have a pointer to a base class as the data type but would rather not.</p>
  
  <p>I've never used boost before but have looked at the fusion library but can't figure out what I need to do.</p>
  
  <p>Thanks for your help.</p>