Я пытаюсь создать класс диспетчера конфигурации, который может хранить произвольные объекты с помощью 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 в моем интерфейсе.
Как лучше всего это сделать? ?