标签: c++ templates constructor
我想创建一个带有模板构造函数的类:
class foo { template <class T> foo(T var) {} };
这在VS2008中编译,但我不知道它是否是非标准扩展,或者C ++标准是否允许它。
答案 0 :(得分:6)
在[temp.mem]中:
可以在类或类模板中声明模板;这样的 模板称为成员模板。
构造函数是成员,并且不明确禁止它们使它们成为模板。
例如,std::shared_ptr有许多template constructors。
std::shared_ptr