【发布时间】:2011-10-22 17:59:15
【问题描述】:
同一类是否可以有多个版本,它们的区别仅在于它们采用的模板参数的数量?
例如:
template<typename T>
class Blah {
public:
void operator()(T);
};
template<typename T, typename T2>
class Blah {
public:
void operator()(T, T2);
};
我正在尝试对函子类型的事物进行建模,这些事物可以接受可变数量的参数(最多可写出的不同模板的数量)。
【问题讨论】:
-
我想知道你是否可以用类型列表做点什么。
-
@john 那是个好主意,但我使用的 MSVC++ 2010 不支持它们,我不相信。
-
实际上 boost::tuple 可能是同一想法的更易于访问的版本。有一个具有一种类型的通用模板,然后是具有两种、三种、四种类型的元组的专用版本。
标签: c++ templates overloading