首先想象我有一个模板成员函数的类数据: -
class Data
{
public:
template <class Loader> void load(const std::string& filename);
};
我可以用这这样的 -
Data data;
data.load<SomeLoader>(filename);
和一切正常。我可以在编译器时通过模板参数选择哪个类,我希望我的Data对象用来加载一些数据。
但是我不能工作,如何与构造函数做到这一点...
class Data
{
public:
template <class Loader> Data(const std::string& filename);
};
这似乎编译得很好,但我似乎无法找出如何实际调用该函数。
Data<SomeLoader> data;
这不起作用,因为它会调用类模板,而不是模板构造函数。
有一些我在这里失踪的语法吗? (如果我添加SomeLoader类型的构造函数参数,那么编译器会正确推断出要使用的类,但这不是我需要在这里做的)
啊,我搜索了这个,但没有找到任何东西。感谢您添加链接 – jcoder 2012-03-14 12:25:46