Каким-либо способом создать шаблонную функцию в абстрактном базовом классе?

Я пытаюсь создать класс диспетчера конфигурации, который может хранить произвольные объекты с помощью std :: string.

My Начальная идея для моего интерфейса (абстрактный базовый класс) заключалась в следующем (конечно, это ужасно неполно)

class ConfigurationManager
{
public:
   static boost::shared_ptr<ConfigurationManager> create();

   template<typename T>
   virtual T getOption(const std::string& name) = 0;
};

Но затем мой компилятор указал, что шаблоны не могут быть виртуальными (а затем я понял, что я не могу экспортировать шаблоны в любом случае).

Внутри я собираюсь использовать boost :: any (в значительной степени проверенное время выполнения void *), но я не хочу выставлять boost :: any в моем интерфейсе.

Как лучше всего это сделать? ?

9
задан Lalaland 23 December 2011 в 02:29
поделиться