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

标签 c++ templates constructor

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

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

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

最佳答案

在 [temp.mem] 中:

A template can be declared within a class or class template; such a template is called a member template.

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

例如,std::shared_ptr 有很多 template constructors .

关于c++ - C++ 标准是否允许非模板类的模板构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20161535/

相关文章:

c++ - 在 Eclipse-CDT 中使用*相对*路径引用第三方库

c++ - 为什么我无法获得有关用户使用的证书的正确信息?

c++ - Eigen 广播比较

c++ - 模板程序中的“模板前预期的主要表达式/';'”错误

Android Studio 实时模板不工作

使用原型(prototype)的Javascript继承,什么是实用的方法?

java - 如何从数组中获取值以在另一个类中使用?

c++ - 如何在 C++ 中安全地平均两个无符号整数?

c++ - clang 模板化使用 __attribute__((vector_size(N)))

java - 初始化变量的正确方法