【发布时间】:2012-01-26 12:48:50
【问题描述】:
我正在尝试制作一个配置管理器类,它可以通过 std::string 存储任意对象。
我的接口(抽象基类)的初始想法是这样的(当然这是非常不完整的)
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。
最好的方法是什么?
【问题讨论】:
-
@Oli 模拟我在问题中发布的语法上不可能的界面。
-
所以你想做多态函数模板,即使它们是不可能的?
标签: c++ virtual abstract-class