C ++标准是否允许非模板类的模板构造函数?

时间:2013-11-23 11:05:51

标签: c++ templates constructor

我想创建一个带有模板构造函数的类:

class foo
{
    template <class T> foo(T var) {}
};

这在VS2008中编译,但我不知道它是否是非标准扩展,或者C ++标准是否允许它。

1 个答案:

答案 0 :(得分:6)

在[temp.mem]中:

  

可以在类或类模板中声明模板;这样的   模板称为成员模板。

构造函数是成员,并且不明确禁止它们使它们成为模板。

例如,std::shared_ptr有许多template constructors