如何使用自定义值初始化模板类中的数组?

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;

【讨论】:

以上是关于如何使用自定义值初始化模板类中的数组?的主要内容,如果未能解决你的问题,请参考以下文章

PHP数组中可否存放对象?如果可以,那么在smarty的模板中应当如何获取对象的属性值?

如何在Python中定义静态变量

初始化后访问自定义 UIButton 类中的插座

C++在类中定义vector并初始大小的问题

如何在 C++ 类中初始化可变大小数组?

java中在一个类中如何设定默认值