【发布时间】:2012-03-14 11:59:00
【问题描述】:
首先想象我有一个带有模板化成员函数的数据类:-
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 类型的构造函数参数,那么编译器会正确推断要使用的类,但这不是我需要在这里做的)
【问题讨论】:
-
啊,我搜索了这个并没有找到任何东西。感谢您添加链接
标签: c++