<分区>
Possible Duplicate:
C++ invoke explicit template constructor
首先假设我有一个带有模板化成员函数的 Data 类:-
class Data
{
public:
template <class Loader> void load(const std::string& filename);
};
我可以这样用-
Data data;
data.load<SomeLoader>(filename);
一切正常。我可以在编译器时通过模板参数选择我希望我的数据对象使用哪个类来加载一些数据。
但是我不知道如何使用构造函数来做到这一点...
class Data
{
public:
template <class Loader> Data(const std::string& filename);
};
这似乎编译得很好,但我似乎无法弄清楚如何实际调用该函数。
Data<SomeLoader> data;
那是行不通的,因为那会调用类模板,而不是模板化的构造函数。
我在这里缺少一些语法吗? (如果我添加一个 SomeLoader 类型的构造函数参数,那么编译器会正确地推断出要使用的类,但这不是我需要在这里做的)