title: Any way to have a template function in an abstract base class?
body: <p>I am trying to make a configuration manager class, that can store arbitrary objects by std::string.</p>
  
  <p>My starting idea for my interface (abstract base class) was this (of course this is horribly incomplete)</p>
  
  <pre><code>class ConfigurationManager
  {
  public:
     static boost::shared_ptr&lt;ConfigurationManager&gt; create();
  
     template&lt;typename T&gt;
     virtual T getOption(const std::string&amp; name) = 0;
  };
  </code></pre>
  
  <p>But then my compiler pointed out that template's cannot be virtual(and then I realized that I cannot have exported templates anyways).</p>
  
  <p>Internally I am going to be using boost::any's(pretty much a runtime checked void*), but I do not want to expose boost::any in my interface. </p>
  
  <p>What would be the best way to go about this?</p>