如何使用自定义值初始化模板类中的数组?
Posted
技术标签:
【中文标题】如何使用自定义值初始化模板类中的数组?【英文标题】:How to initialize an array in a template class with a custom value? 【发布时间】:2016-06-09 23:11:37 【问题描述】:例如
template<size_t N>
class A
array<int, N> m;
static A const UNIT 1, 1, ...; // repeated N times,
// but I can't because of currently unspecified N
如何使用自定义值1
初始化模板大小的数组?
【问题讨论】:
不确定,但如果我看到...
与模板结合使用,我开始考虑使用可变参数模板参数列表并解包。不知道如何生成这些,使用非类型模板参数给出它们的编号。
fill 做了一些工作。但我不知道怎么表达。可能是 lambda???
啊,好吧。是的,确实如此。我假设您正在寻找编译时解决方案。
【参考方案1】:
您可以使用填充功能。 这也适用于静态 const 成员。
template<size_t N>
class A
array<int, N> m;
public:
static A const unit;
A() m.fill(1);
;
template<size_t N>
A<N> const A<N>::unit;
【讨论】:
以上是关于如何使用自定义值初始化模板类中的数组?的主要内容,如果未能解决你的问题,请参考以下文章