【发布时间】:2011-02-21 03:43:07
【问题描述】:
类的构造函数可以是模板函数。在调用这样的构造函数时,编译器通常会查看提供给构造函数的参数并从中确定使用的模板参数。是否还有一些语法可以显式指定模板参数?
一个人为的例子:
struct A {
template<typename T>
A() {}
};
有没有办法实例化这个类?显式指定构造函数的模板参数的语法是什么?
如果编译器似乎没有找到正确的模板化构造函数,我的用例将是一个问题。显式指定模板参数可能会生成更有用的错误消息,甚至可以解决问题。
【问题讨论】:
-
为构造函数显式指定模板参数仅适用于构造函数的显式特化、实例化、行外定义和友元声明。
-
template <class TArg> struct A { template<typename T = TArg> A() {} };- 适合我。但是当然现在我们有了模板类。
标签: c++ templates syntax constructor