【发布时间】:2015-10-01 16:25:13
【问题描述】:
可以给一个模板化的构造函数提供无法推导的模板参数:
struct X
{
int i;
template<int N>
X() : i(N)
{
}
};
你会如何使用这样的构造函数?能用吗?
【问题讨论】:
-
你不能。由于构造函数没有名称,因此您不能指定构造函数模板的模板参数。所有模板参数都必须是可推导的。
-
当然可以通过其他方式实现编译时常量表达式初始化,例如带有
std::integral_constant参数等的标签调度 -
你的用例是什么?
-
@DieterLücking,我会用一个类型来包装对象的分配。我正在使用一个函数,类似于
make_unique。