C++标准是否允许为非模板类提供模板构造函数

Does the C++ standard allow a template constructor for a non-template class?

本文关键字:构造函数 是否 标准 C++      更新时间:2023-10-16

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

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

这是在VS2008中编译的,但我不知道它是一个非标准扩展,还是C++标准允许它

In〔temp.mem〕:

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

构造函数是成员,并没有明确禁止将其作为模板。

例如,std::shared_ptr有许多模板构造函数。