【发布时间】:2011-02-11 09:53:52
【问题描述】:
我有一个带有模板化构造函数的非模板类。这段代码为我编译。但我记得在某处我曾提到构造函数不能是模板。有人可以解释这是否是有效的用法吗?
typedef double Vector;
//enum Method {A, B, C, D, E, F};
struct A {};
class Butcher
{
public:
template <class Method>
Butcher(Method);
private:
Vector a, b, c;
};
template <>
Butcher::Butcher(struct A)
: a(2), b(4), c(2)
{
// a = 0.5, 1;
// b = -1, 1, 3, 2;
// c = 0, 1;
}
谢谢, 悟空。
【问题讨论】:
-
事实上,所有的 STL 容器都至少有一个模板化的构造函数。 (这是一个接受任何兼容迭代器类型的两个迭代器。)
标签: c++ templates constructor